J'aimerais écrire un script qui, entre autres choses, ouvre un fichier PDF avec evince et ferme le terminal.
Jusqu'ici j'ai:
evince &
sleep 2
kill -9 $PPID
mais evince ferme quand le terminal fait. J'ai essayé d'utiliser disown -h -a
mais cela ne fonctionne pas.
en utilisant Nohup
, vous pouvez éviter que le processus evince soit arrêté avec son processus parent:
Nohup evince &
sleep 2
kill -9 $PPID
plus de détails sur ce que Nohup fait et d'où il vient peuvent être trouvés sur wikipedia: https://en.wikipedia.org/wiki/Nohup
Nohup est une commande POSIX permettant d’ignorer le signal HUP (blocage). Le signal HUP est, par convention, la façon dont un terminal met en garde les processus dépendants de la déconnexion.
La sortie qui irait normalement au terminal est dirigée vers un fichier nommé Nohup.out si elle n’a pas déjà été redirigée.
Sur mon Ubuntu
Nohup evince &
exit
fonctionne comme vous le souhaitez. Pas de sommeil, pas de tuer.
kill -9
est excessif dans tous les cas, kill -HUP
est tout à fait approprié pour tuer un shell, et probablement aussi un terminal ... Je ne veux pas vérifier car avec XFCE, il semble n'y avoir qu'un seul processus terminal pour toutes les fenêtres, donc kill -9 $PPID
tuerait tous mes fenêtres de terminal.