有时我需要杀死 Google Chrome(其中我打开了 2 个窗口/实例)。两个实例都是不是在隐身模式下。
我所做的是:(在 Debian 8 上)
杀死所有铬 && 杀死所有铬
关闭 2 个 chrome 窗口。
不过我读到了全杀命令应该杀死所有实例一个程序,而不仅仅是一个程序。
所以我想知道:为什么killall 不像名字所暗示的那样杀死所有实例?
答案1
我尝试了两个进程,它的工作原理如下:
jai@jai-VirtualBox:/tmp$ sleep 100 &
[1] 3996
jai@jai-VirtualBox:/tmp$ sleep 60 &
[2] 3997
jai@jai-VirtualBox:/tmp$ pgrep -l sleep
3996 sleep
3997 sleep
jai@jai-VirtualBox:/tmp$ killall -v sleep
Killed sleep(3996) with signal 15
Killed sleep(3997) with signal 15
[1]- Terminated sleep 100
[2]+ Terminated sleep 60
jai@jai-VirtualBox:/tmp$ pgrep -l sleep
jai@jai-VirtualBox:/tmp$
-v
您可以使用(详细)或(交互式)重试吗-i
?
答案2
您可以使用命令 top 显示进程
top
杀死进程
kill PID_of_chrome
答案3
Chrome 浏览器在启动时生成多个线程,然后为随后创建的每个窗口和/或选项卡生成额外的线程。
默认情况下,killall 会向所有具有特定名称(在您的情况下为“chrome”)的进程发送 SIGTERM。但只有能够处理该信号的进程才会继续处理它。无法处理 SIGTERM 信号的将不会关闭。你可以用killall -9 无条件杀死他们
答案4
有可能其中一个 chrome 实例忽略了SIGTERM
信号,等待一秒钟确认?killall -9 chrome
可能会做你想做的事。