「自動」モードを追加して、処理を実行し、出力を生成してから、バックグラウンドで自動的に入力するスクリプトがあります。
どうすればこれを安全に達成できますか?単純なフォークで親を終了しますか、それともゾンビ(孤立)の問題が発生しますか?
# initial processing
defined (my $pid fork) or die "Can't fork: $!";
exit if $pid;
# continue child in background
孤立したプロセス、つまり親が存在しなくなったプロセスは、通常、initプロセスによって自動的に取得されます。ゾンビは別のものです。親プロセスは存在しますがwait
、子の世話をしないため、プロセスが死んでも完全には刈り取られません。あなたの場合、これは孤立しているので、この部分について心配する必要はありません。
シェルからプロセスを実行した場合は、親の親との共有ファイル記述子などについて心配する必要があるかもしれません。すべてのファイル記述子、特にstdin、stderr、stdoutも閉じることをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加