複数のプロセスが受信した信号を報告します。

複数のプロセスが受信した信号を報告します。

ある端末で複数のプログラムを実行program &し、SIGKILL SIGINT別の端末から信号を送信するか、別の信号を送信し始めた場合、どのプロセスが実行している端末からどのプロセスがどの信号を受け取ったかを教えてください。

ベストアンサー1

端末はそのようなプロセスに送信された信号について知らないので、何も知らない。ただし、シェルにジョブ制御機能がある場合は、バックグラウンドジョブが終了するタイミング(シグナルなど)を通知できます。たとえば、bashとzshのnotify場合は、次のプロンプトを待たずにそのレポートをすぐに受信できるようにオプションを設定する必要があります。

バックグラウンドジョブの終了時に実行されるSIGCHLDトラップを設定することもできます(ただし、このトラップを介して終了したジョブに関する情報を取得することはできません)。

wait $pidPOSIXシェルは特定のPIDの終了ステータスを取得するためにも使用できますが、$pidこれはプロセスの振る舞いによって偽の肯定と偽の否定になる可能性がある信号を提供しますが、いくつかの制限があります。よりwait仕様より多くの情報を知りたいです。

おすすめ記事