OVH Cloud OVH Cloud

Question sur le shell

52 réponses
Avatar
Grosdebutant
Bonjour,
Je débute en venant de DOS et je comprends pas bien comment dans un shell
positionner une variable pour qu'elle soit valide en sortie du shell
exemple
#!/bin/sh
TOTO=123
echo $TOTO

j'ai bien 123
mais si je lance manuellement echo $TOTO , je n'ai plus rien

Une autre question , est ce qu'il est possible de lancer un executable en
tache de fond a partir d'un shell
#!/bin/sh
Monexe1
Monexe2
Monexe3

en fait je veux lancer un executable (Monexe2)qui ne s'arrête que 10
minutes plus tard. mais je veux que le shell sorte directement.

2 réponses

2 3 4 5 6
Avatar
Nicolas George
Stephane Dupille wrote in message
:
Au moins, nohup est portable...


Oui. Hélas.

D'ailleurs, je me demande si disown
dans zsh ne fait pas un setsid plutôt qu'un masque des signaux.


Ni l'un ni l'autre : disown raye le processus de la table des jobs de zsh,
ni plus ni moins.

Avatar
Stephane Chazelas
2005-04-11, 13:23(+00), Nicolas George:
Stephane Dupille wrote in message
:
Au moins, nohup est portable...


Oui. Hélas.

D'ailleurs, je me demande si disown
dans zsh ne fait pas un setsid plutôt qu'un masque des signaux.


Ni l'un ni l'autre : disown raye le processus de la table des jobs de zsh,
ni plus ni moins.


Et en particulier, il ne bloque pas les HUP. De toutes facons,
un process (le shell) ne peut heureusement pas changer le signal
handling d'un autre process (a moins de faire comme on ferait
par gdb). Pas plus qu'un process ne peut changer la session d'un
autre (en plus, comme les jobs sont des nouveaux process group,
raison de plus pour qu'ils ne puissent devenir des sessions).

Note qu'on peut tres bien se passer de nohup:

(trap '' HUP; exec cmd) > nohup.out 2>&1

fait la meme chose que:

nohup cmd

(a ceci pres que nohup peut aussi trapper d'autres signaux
suivant les implementations).

--
Stéphane


2 3 4 5 6