在 Raspbian 中杀死进程

5 linux kill raspbian

我正在尝试终止以下进程:

pi@raspberrypi ~ $ ps aux | grep raspi
pi        4647  0.0  0.5   3520  1392 pts/2    S+   12:05   0:00 grep --color=auto raspi
root      8148  0.0  0.5  10744  1372 ?        Sl   06:25   0:00 raspivid -w 800 -h 600 -t 15000 -o /home/pi/media/2015-02-01-06-25-03.177474.h264 -n -rot 270
pi       30099  0.0  0.6  11400  1748 pts/1    Sl+  11:57   0:00 raspistill -o test.jpg
Run Code Online (Sandbox Code Playgroud)

我尝试了如下所示的一些命令,但没有成功:

pi@raspberrypi ~ $ sudo pkill -f raspivid
pi@raspberrypi ~ $ sudo pkill -f raspistill
pi@raspberrypi ~ $ sudo kill 8148
pi@raspberrypi ~ $ sudo kill 30099
Run Code Online (Sandbox Code Playgroud)

我通过 SSH 以“pi”用户身份登录,这是问题的根源吗?如果是,那么为什么我不能杀死自己的进程(30099)?

我在这里错过了什么吗?

gro*_*taj 9

kill命令系列的名称具有误导性 - 它们并没有真正杀死任何东西,只是向进程发送信号。默认情况下SIGTERM发送信号,它只是温和地要求进程退出,但进程可以选择忽略它或以不同的方式处理它。(参见手册页kill)。

要强制退出进程,您必须向它发送一个SIGKILL信号。SIGKILL不能被进程忽略,在大多数情况下会导致它立即终止,没有完成正在进行的任务等。

send 的可能语法很少SIGKILL,所有这些都是完全等效的:

kill -9 <pid>
kill -kill <pid>
kill -s SIGKILL <pid>
Run Code Online (Sandbox Code Playgroud)

即使使用SIGKILL并且需要重新启动,该进程也可能无法终止。