停止したプロセスの所有権を剥奪した後も、プロセステーブルが表示されている理由を知りたい
PING www.google.com (74.125.130.106) 56(84) bytes of data.
64 bytes from 74.125.130.106: icmp_seq=1 ttl=44 time=182 ms
64 bytes from 74.125.130.106: icmp_seq=2 ttl=44 time=209 ms
64 bytes from 74.125.130.106: icmp_seq=3 ttl=44 time=213 ms
64 bytes from 74.125.130.106: icmp_seq=4 ttl=44 time=122 ms
^Z
[1]+ Stopped ping www.google.com
anshul@anshul-Inspiron-N5010:~/Documents/workspace/Shell$ jobs -l
[1]+ 10319 Stopped ping www.google.com
anshul@anshul-Inspiron-N5010:~/Documents/workspace/Shell$ disown
bash: warning: deleting stopped job 1 with process group 10319
anshul@anshul-Inspiron-N5010:~/Documents/workspace/Shell$ ps -ef | grep 10319
anshul 10319 9717 0 23:35 pts/25 00:00:00 ping www.google.com
なぜまだプロセス10319が表示されているのですか、削除する必要がありますか?
いいえ、プロセスは停止であり、強制終了されません。したがって、ps
は引き続き表示します。
ps ax
を実行すると、ステータスがT
であることがわかります。この状態では、プロセスはSIGCONTを受信するまで何もしません。その後、プロセスは実行を継続します(ターミナルでfg
と入力すると、プロセスが停止した時点から再開するのがわかります。あなたの場合、次のicmp_seq
は5)になります。
編集:disown
の部分を忘れました。プロセスの所有権を剥奪したため、jobs
には表示されなくなりました。このため、fg
することはできません。ただし、ps
ステータスのT
出力には引き続き存在します。あなたが言ったように、あなたはまだそれをkill -sigcont <PID>
で続けることができます。それでも、SIGCONTを送信したとしても、それをun-disownすることはできません。つまり、フォアグラウンドで実行することはできません。あなたの端末の。