OVH Cloud OVH Cloud

recherche cmd

17 réponses
Avatar
remy
bonjour

je cherche les commandes qui vont bien pour
lancer un process de calcul en arriere plan

donc

monProg &
et ensuite je veux le suspendre le jour pour le relancer la nuit
sans jamais le tuer

merci pour toute info
prog java donc pas de semaphore

--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy

7 réponses

1 2
Avatar
Franssoa
RTFM, tu connais ? "man screen" est ton ami.
Oui bien sur, d'ailleurs dans mon email j'ai bien précisé que j'ai

commencé par faire un "man screen", mais ce n'est pas mon ami car il m'a
retourné :
"il n'y a pas de page de manuel pour screen. "

Tu lances screen, ensuite (...)
Merci beaucoup, je vais tester tout ça.


Franssoa

Avatar
remy
Michel Tatoute wrote in message <e3dndk$s4j$:
soit nohup pour lancer un prgm détaché de tout.


nohup est une connerie, c'est setsid qu'il faut utiliser.



screen -s test Monprog

ctrl A+d ou dans une autre console
screen -d test

kill -stop pid screen et l'ordre pas tres claire
kill -stop pid prog

pour reprendre

kill -cont pid screen ou pid monProg


pour voir les sortie tty
screen -r test

ca marche bien meme tres bien merci a vous tous

--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy


Avatar
Jacques Lav!gnotte \( Drop Dr NO \!\)
On Fri, 05 May 2006 10:19:59 +0200
Franssoa wrote:

RTFM, tu connais ? "man screen" est ton ami.
Oui bien sur, d'ailleurs dans mon email j'ai bien précisé que j'ai

commencé par faire un "man screen", mais ce n'est pas mon ami car il
m'a retourné :
"il n'y a pas de page de manuel pour screen. "


Il n 'est pas installé ?



SCREEN(1)

NAME
screen - screen manager with VT100/ANSI terminal emulation

SYNOPSIS
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]

DESCRIPTION


Franssoa
Jacques



Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*Emmanuel Florac* tapota sur f.c.o.l.configuration :

Question de néophyte :
on fait comment avec screen pour lancer un prog, fermer le shell avec le
prog qui continue à tourner en tâche de fond, et le récupérer plus
tard dans une autre session ?


RTFM, tu connais ?


Oui, il connait.

"man screen" est ton ami.


Je cite l'OP :

[ moi]$ man screen
Il n'y a pas de page de manuel pour screen.



Pour une fois qu'un utilisateur a le bon réflexe, il est dommage de lui
balancer un RTFM. ;-P

--
Sébastien Monbrun aka TiChou


Avatar
Sébastien Kirche
Le 4 May 2006 à 22:32, Nicolas George vraute :

nohup est une connerie, c'est setsid qu'il faut utiliser.


Tu pourrais un peu développer stp ?
Je ne doute pas de tes compétences supérieures aux miennes, mais disons
que formulé comme cela, ça semble un peu péremptoire :)

Pour ce que je vois dans le manuel :
nohup - run a command immune to hangups, with output to a non-tty
setsid - run a program in a new session

Pour ce que j'en sais pour l'utiliser parfois nohup fonctionne,
puisqu'il permet à un process de survivre à la fermeture du xterm depuis
lequel il a été lancé. Au hasard, un programme doté d'une interface
graphique.

--
Sébastien Kirche

Avatar
Nicolas George
Sébastien Kirche
wrote in message :
Tu pourrais un peu développer stp ?
Je ne doute pas de tes compétences supérieures aux miennes, mais disons
que formulé comme cela, ça semble un peu péremptoire :)

Pour ce que je vois dans le manuel :
nohup - run a command immune to hangups, with output to a non-tty
setsid - run a program in a new session


Pour détacher un processus d'un terminal, il y a plusieurs choses à faire :

(1) s'assurer que ses entrées-sorties ne sont pas sur le terminal ;

(2) faire comprendre au shell que ce processus est en arrière plan ;

(3) lui faire perdre son terminal de contrôle.

nohup fait le (1), mais c'est absolument inutile, parce que ça se fait aussi
bien explicitement avec quelque chose du style :

foo < /dev/null > foo.log 2>&1

nohup ne fait pas le (2) ; mais là encore c'est inutile, puisque c'est le
rôle du & du shell (et éventuellement de disown, ou de &!, si le shell fait
du job control agressif).

nohup ne fait pas le (3), à la place, il règle le processus de manière à le
protéger contre les effets de ne pas avoir fait le (3), à savoir se prendre
un SIGHUP quand le terminal de contrôle est fermé, ce qui normalement tue le
processus. C'est là qu'est la connerie, parce que :

- ça donnera des affichages qui ne sont pas bons dans la liste des processus
(c'est bénin) ;

- il peut se trouver des circonstances où cette protection se perd, ce qui
fait que le processus se fait quand même tuer ;

- du point de vue du terminal de contôle, le processus est toujours attaché,
ce qui interdit la libération des resources correspondantes.

Pour illustrer le dernier point, on peut citer certaines versions de SSH qui
ne terminent pas proprement la session tant qu'un processus est attaché au
terminal, même s'il n'y a aucun file descriptor ouvert.


setsid fait (3), c'est fondamentalement sa raison d'être (setsid, c'est
*l*'appel système qui sert précisément à détacher un processus d'un terminal
de contrôle). Un corollaire immédiat de son fonctionnement est qu'il fait
(2) également. Il n'y a que (1) à faire à la main ; ça peut s'automatiser
avec une fonction shell.

Avatar
Sébastien Kirche
Le 5 May 2006 à 23:48, Nicolas George vraute :

Pour détacher un processus d'un terminal, il y a plusieurs choses à
faire :


Voilà ! Merci pour ce point de technique que je m'empresse de mettre de
côté :)

--
Sébastien Kirche

1 2