Esta pregunta es un seguimiento de: Cómo suspender y reanudar procesos
He comenzado firefox desde una sesión bash en gnome-terminal.
El árbol de procesos se ve así:
$ 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
Cuando golpeo CTRL+Z
en bash, suspenderá firefox. Cuando emito el comando bg
(o fg
) se reanudará Firefox. Esto es como se esperaba.
Cuando emito el comando kill -s SIGTSTP 27980
en otra terminal, imprimirá la línea [1]+ Stopped firefox
en la primera terminal (al igual que cuando presiono CTRL+Z
), pero no suspende Firefox. Supongo que solo suspende el script de shell.
Cuando emito el comando kill -s SIGTSTP 27989
(tenga en cuenta el PID) en otro terminal, suspenderá firefox. La primera terminal no toma nota de esto.
¿Cómo bash suspende todo el árbol de procesos? ¿solo atraviesa el árbol y SIGTSTP a todos los niños?
pgid
a su ps
comando para ver los grupos de procesos de los que habla @geekosaur.