Bashのバックグラウンド操作が完了したら、端末に通知します。
$ sleep 3 &
[1] 17527
$
[1]+ Done sleep 3
通知はいくつかのコールバックイベント処理に基づいていますか?
バックグラウンド操作が完了したら、端末に信号を送信して端末に通知しますか?
端末で通知を表示するには、なぜEnterキーを押す必要があります(空のコマンドを実行するなど)。
答え1
~からマンページ:
ジョブの状態が変わるたびに、シェルはすぐに学習します。通常
bash
、他の出力を中断しないように、ジョブ状況の変更を報告するように求めるメッセージが表示されるまで待ちます。組み込みコマンドのオプションが有効になっている場合、-b
これらの変更はすぐに報告されます。終了するサブプロセスごとに、すべてのトラップが実行されます。set
bash
SIGCHLD
Enter通知を表示するためにボタンを押す必要がある理由を説明します。実行して変更できますset -b
。今回の仕事とは関係ありません端末、ジョブ制御はシェルによって管理されます。バックグラウンドプロセスが終了すると、親プロセスはSIGCHLD
シグナル;通知です。