
子プロセスが正しい収穫を得ることができない場合、ゾンビになることを知っています。ps
コマンドを使用すると、これを表示できます。
また、「wait [pid]」コマンドは、サブシェルが完了してインポートされるまでバックグラウンドで実行されるサブシェルを待ちます。
次のスクリプトがあります。
#!/bin/bash
sleep 5 &
tail -f /dev/null
wait
私の質問は、私はafterを使わずにsleep 5 &
親シェルが決して終了しないということですtail
。それではなぜsleep 5 &
ゾンビにならないのですか?全て作ってから消えるのを見たのですがps
、誰が収穫したのか気になります。
答え1
答え2
「」を使用するには、親プロセスがバックグラウンドに「」を配置する必要があるため、親プロセスは収穫され&
ます。sleep 5
sleep 5