cette question fait suite à: comment suspendre et reprendre les processus
J'ai démarré Firefox depuis une session bash dans gnome-terminal.
L'arbre de processus ressemble à ceci:
$ ps -e -o pid,ppid,cmd -H
1828 1 gnome-terminal
26677 1828 bash
27980 26677 /bin/sh /usr/lib/firefox-3.6.15/firefox
27985 27980 /bin/sh /usr/lib/firefox-3.6.15/run-mozilla.sh /usr/lib/firefox-3.6.15/firefox-bin
27989 27985 /usr/lib/firefox-3.6.15/firefox-bin
28012 27989 /usr/lib/firefox-3.6.15/plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so 27989 plugin true
Quand je frappe CTRL+Z
en bash, cela suspendra Firefox. Lorsque j'émets la commande bg
(ou fg
), elle reprendra Firefox. C'est comme prévu.
Lorsque j'émets la commande kill -s SIGTSTP 27980
dans un autre terminal, il imprimera la ligne [1]+ Stopped firefox
dans le premier terminal (comme lorsque je frappe CTRL+Z
), mais il ne suspend pas Firefox. Je suppose que cela suspend uniquement le script shell.
Lorsque j'émets la commande kill -s SIGTSTP 27989
(notez le PID) dans un autre terminal, il suspendra Firefox. Le premier terminal n'en prend pas note.
Comment bash suspend-il l'intégralité de l'arborescence des processus? traverse-t-il simplement l'arbre et SIGTSTP tous les enfants?
pgid
à votre ps
commande pour voir les groupes de processus dont parle @geekosaur.