バッシュによると:特殊パラメータ:
($!)は、非同期コマンドとして実行されるか、bg組み込みコマンドを使用して最後にバックグラウンドに追加されたジョブのプロセスIDに展開されます。
次のようにこれを利用できます。
$ leafpad &
[2] 3962
$ kill $!
これは動作し、最も近いプロセス(たとえばleafpad
)を終了しますが、notify-send
動作しないようです。
$ notify-send Hello &
[2] 4052
$ kill $!
bash: kill: (4052) - No such process
killall notify-osd
私はそれを殺すために使用する必要があります。
kill $!
それでは、なぜ機能しないのか疑問に思いますnotify-send
。これらのプロセスを終了する正しい方法は何ですか?
注:タイムアウトを指定できることはわかっていますが、これは別の質問です。
答え1
notify-send
一定時間実行されません。起動し、に接続し、notify-osd
表示する通知メッセージを転送してから終了します。
kill
コマンドを実行すると、それnotify-send
自体が終了します。表示される通知はで提供されますnotify-osd
。