web-dev-qa-db-fra.com

Script Bash pour ouvrir evince (lecteur pdf) et fermer le terminal

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.

3
Edoardo

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.

3
Law29