Linux サブプロセスが追い出されない [閉じる]

Linux サブプロセスが追い出されない [閉じる]

これにより、BSDとLinuxの間のスクリプトの移植性に深刻な問題が発生します。

CentOS 6.4でこれが起こりました。

私は素敵なコンパクトなテストケースを持っています。

bash -c "inotifywait -mcr . | sed s/CLOSE/z/"

ps ufそして観察してください:

 \_ bash -c inotifywait -mcr . | sed s/CLOSE/z/
     \_ inotifywait -mcr .             
     \_ sed s/CLOSE/z/                 

次に、bash親プロセスのPIDを見つけて終了します。

シェルプロンプトがどのように返されるかを確認します。これは、シェルが子を待機したことを示します。

ただし、より多くのイベントを報告するためにinotifyをトリガーするファイルシステムで操作を実行すると、端末に引き続きダンプされます。 OS Xではすべて死ぬので、これは起こりません。

ps uf再び。 inotifywaitとsedが両方の子であることを確認してくださいinit

これは私にとって完全に間違っているようです。

POSIXはこれについて何と言いますか?

関連情報