この質問はフォローアップです:プロセスを中断および再開する方法
私はgnome-terminalのbashセッションからfirefoxを起動しました。
プロセスツリーは次のようになります。
$ 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
CTRL+Zbashでヒットすると、firefoxが中断されます。コマンドbg(またはfg)を発行すると、firefoxが再開されます。これは予想どおりです。
kill -s SIGTSTP 27980別のターミナルでコマンドを発行する[1]+ Stopped firefoxと、最初のターミナルで行を印刷します(ちょうどヒットしたときのようにCTRL+Z)が、firefoxを中断しません。シェルスクリプトを一時停止するだけだと思います。
kill -s SIGTSTP 27989別の端末でコマンド(PIDに注意)を発行すると、firefoxが中断されます。最初の端末はこれに注意しません。
bashはプロセスツリー全体をどのように一時停止しますか?ツリーとすべての子をSIGTSTPだけトラバースしますか?
pgidには、psコマンドに追加する必要があります。