Linuxは孤立したゾンビプロセスを継承したときにinitにSIGCHLDを送信しますか?

Linuxは孤立したゾンビプロセスを継承したときにinitにSIGCHLDを送信しますか?

Linuxが孤立したゾンビプロセス(元の親によってリサイクルされていないプロセス)を継承する場合、そのプロセスはSIGCHLD(PID 1プロセス)に転送されますか?init

ベストアンサー1

はい。私はそれをテストしました。どこでこれが起こっているのかを見ることができますLinuxコードから


テスト:入れ子になったシェルを起動します。他の場所の親シェルkill -s STOP。その後、kill -s KILLサブシェル、親シェルです。

メモ:

たとえば、内部的にこれを試してみると、gnome-terminal収穫機はPID 1ではありません。子収穫機、つまりプロセスになりますsystemd --user

また、systemd信号を処理するにはsignalfdを使用してください。したがって、strace -psystemdプロセスで実行すると、受信した信号は表示されません。代わりに、epoll_wait()とファイル記述子の読み取り()でsystemdが目を覚ますことがわかります。

signalfdを使用してファイル記述子番号を確認できますls -l /proc/<PID>/fd/<FD>。それは言うでしょうanon_inode:[signalfd]

おすすめ記事