终止进程
KILL 命令
其实它是一个给进程发信号的工具,不一定是杀进程。
默认信号
kill
命令的默认信号是 SIGTERM
,对应数字 15
,优雅终止。
列出可用信号
指定信号类型
发给多个进程
特殊进程号 -1
-1 进程号表示所有进程,以下命令会终止你(当前用户)能终止的所有进程。
危险
不要在 root 用户执行
假如我想在 kuga
用户执行,可先在 root
用户查看该用户的进程。
然后再到 kuga 终端执行命令 kill -9 -1
。
会立刻断开连接,在 root
上查看 kuga
用户进程会发现全没了。
PKILL 命令
通过进程的名称来查找并发送信号给匹配的进程。
默认信号
pkill
命令的默认信号是 SIGTERM
,对应数字 15
,优雅终止。
指定信号类型
指定用户进程
精确匹配进程名称
PGREP
通过进程的名称来查找进程 ID。
忽略大小写
指定用户进程
列出进程 ID 和名称
没有 -l
就只会显示进程 ID。
列出匹配进程的数量
指定父进程 ID
最近启动的进程
最早启动的进程
精确匹配进程名称
常用信号
SIGTERM - 15
请求进程终止。这个信号是“友好”的终止请求,进程可以捕捉到这个信号并执行清理工作,然后退出。
它是 kill
和 pkill
命令的默认信号。
通常用于优雅地终止进程,给进程时间来处理未完成的任务。
SIGKILL - 9
强制终止进程。此信号不能被进程捕捉、阻塞或忽略,进程会立即被终止。
发送 SIGKILL
会直接停止进程,不允许进程进行任何清理操作。
用于无法正常终止的进程,当 SIGTERM
无效时使用。
SIGINT - 2
中断信号,通常由用户通过 Ctrl+C
发送,用于中断前台运行的进程。
用于手动中断进程,尤其是交互式进程。
SIGQUIT - 3
退出信号,通常由用户通过 Ctrl+\
发送,表示希望进程生成核心转储(core dump)并退出。
用于调试,当希望进程生成核心转储以便分析问题时使用。
SIGHUP - 1
挂起信号,通常表示终端或控制台断开连接。
许多守护进程在接收到 SIGHUP
信号时,会重新加载其配置文件。
用于重新加载守护进程的配置,或让守护进程重启。