根据巴什的说法:特殊参数:
($!) 扩展为最近放入后台的作业的进程 ID,无论是作为异步命令执行还是使用 bg 内置命令
我可以按如下方式利用它:
$ 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
。