Linux kill 命令
Linux kill 命令用于终止正在运行的进程。
kill 命令可以发送不同的信号给目标进程,来实现不同的操作,如果不指定信号,默认会发送 TERM 信号(15),即终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。
语法
kill [options] <PID>
<PID> 是要终止进程的进程 ID。
参数说明:
-l
:列出所有可用的信号。-<signal>
:发送特定的信号给目标进程,如-9
表示发送 KILL 信号,即强制终止进程。
基本用法
终止进程:默认情况下,kill命令发送SIGTERM(信号15),这可以请求进程终止。如果进程没有捕获这个信号,它将被终止。
kill PID
其中 PID 是进程的 ID。
发送指定信号:通过 -s 选项可以发送指定的信号。
kill -s SIGNAL PID
例如,发送 SIGKILL(信号9)将立即结束进程,不能被忽略或捕获。
kill -9 PID
杀死进程组:使用 -9 选项可以杀死整个进程组。
kill -9 -PID
使用 kill -l 命令列出所有可用信号。
最常用的信号是:
SIGKILL
(信号9):立即结束进程,不能被捕获或忽略。SIGTERM
(信号15):正常结束进程,可以被捕获或忽略。SIGSTOP
(信号19):暂停进程,不能被捕获、忽略或结束。SIGCONT
(信号18):继续执行被暂停的进程。SIGINT
(信号2):通常是Ctrl+C产生的信号,可以被进程捕获或忽略。
实例
终止 PID 为 1234 的进程:
kill 1234
强制终止 PID 为 1234 的进程:
kill -9 1234
向 PID 为 1234 的进程发送 SIGSTOP:
kill -s SIGSTOP 1234
显示信号
# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
杀死指定用户所有进程:
kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 kill -u hnlinux //方法二
注意事项
- 在使用
kill
命令时,需要具有相应的权限,否则可能无法终止进程。 - 某些进程可能需要发送多次信号才能终止,比如一些守护进程。
- 强制杀死进程可能会导致数据丢失或其他副作用,因此应谨慎使用。
stayYuu
ah_***@163.com
linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因。
stayYuu
ah_***@163.com
vicent_777
736***350@qq.com
纠正一下楼上:
vicent_777
736***350@qq.com