killall 的核心用途是直接按进程名发送任意标准信号,无需先查 pid;支持信号名(如 -hup)或编号(如 -1)指定,-e 确保精确匹配,-i 忽略大小写,-v 显示结果,-q 静默执行,-u 限定用户。

killall 可以直接按进程名发送任意标准信号,无需先查 PID,这是它比 kill 更便捷的核心用途。
用信号名或编号指定自定义信号
默认发 SIGTERM(15),要发别的信号,必须显式指定:
-
用信号名:如
killall -s SIGHUP nginx或简写为killall -HUP nginx -
用信号编号:如
killall -s 1 nginx或killall -1 nginx - 常见可选信号包括
HUP(重载配置)、USR1/USR2(用户自定义动作)、ALRM(闹钟)、CONT(恢复暂停进程)等
确认支持的信号列表
运行 killall -l 可查看当前系统所有可用信号名及其编号,例如输出中会包含:
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
注意:只有 0(仅检测进程是否存在)必须用数字形式指定,其他信号名和编号均可互换使用。
发送信号前验证进程是否存在
避免误操作或静默失败,建议组合使用:
- 加
-v查看是否成功发送:如killall -v -USR1 myapp,成功时会打印Killed myapp(PID) with signal 10 - 加
-q抑制错误提示(适合脚本中静默执行) - 加
-u username限定只对某用户进程生效,提升安全性
特殊场景:精准匹配与大小写处理
进程名过长或大小写不一致时容易误杀:
- 用
-e(exact)确保完整匹配:如killall -e -USR2 long_process_name_v2,防止匹配到long_process_name_v1 - 用
-I(大写 i)忽略大小写:如killall -I -TERM MyServer可命中myserver或MYSERVER










