3、kill、killall 发送信号

1、kill 命令

向指定进程发送信号。通过PID发送信号。

  • 默认发送 TERM 信号(15),用于终止进程。
  • 若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。
  • 使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

语法:

kill [参数或信号]  进程号

参数:

  • -l  信号,如果不加信号的编号参数,则使用“-l”参数会列出所有可用的信号名称
  • -a 当处理当前进程时,不限制命令名和进程号的对应关系
  • -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
  • -s 指定发送信号
  • -u 指定用户

常用信号:

  • 1 (HUP):重新加载进程。
  • 9 (KILL):杀死一个进程。
  • 15 (TERM):正常停止一个进程。

使用 kill -l [信号编号]    查询对应信号名称,如不指定编号,则列出所有可用的信号名称

[root@localhost ~]# 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
[root@localhost ~]# kill -l 9
KILL
[root@localhost ~]# kill -l SIGKILL
9
[root@localhost ~]# kill -9 2428

2、killall 命令

通过进程名发送信号。

  • 使用进程的名称来杀死一组进程,与 kill 不同的是它会杀死指定名字的所有进程

语法:

killall [选项] 进程名

选项:

-e, --exact          要求精确匹配进程名
-I, --ignore-case    忽略大小写
-i, --interactive    交互式操作,杀死前询问
-r, --regexp         使用正则表达式匹配
-s, --signal         发送指定信号(默认TERM)
-u, --user           只杀死指定用户的进程
-v, --verbose        显示详细信息
-g , --process-group 结束进程组
-l ,--list 列出所有的信号名称
-q ,--quite 进程没有结束时,不输出任何信息
-w , --wait 等待所有的进程都结束
--help 显示帮助信息

 例子

# 终止所有名为"firefox"的进程
killall firefox

# 强制终止所有chrome进程
killall -9 chrome
killall -KILL chrome

# 交互式终止(确认每个进程)
killall -i vim

# 忽略大小写
killall -I SSHd

 

posted @ 2025-11-17 14:36  chao_xiong  阅读(24)  评论(0)    收藏  举报