一、前言
程序卡死、端口占用、服务异常,都需要结束进程。很多新手直接kill -9强制杀进程,极易导致数据丢失、文件损坏。本文区分优雅关闭和强制关闭,规范线上杀进程标准。
二、kill命令:根据PID精准结束进程
1. 查看所有可用信号
kill -l2. 工作只需要记住3个信号
15 (默认):优雅关闭,等待程序保存数据、释放资源、正常退出(首选)
9:强制杀死,暴力终止进程,不保存数据(万不得已再用)
1:重启进程,重新加载配置
3. 实操命令
# 1. 优雅关闭进程(推荐,不加参数默认15) kill PID # 2. 强制杀死进程(卡死无响应再用) kill -9 PID # 3. 进程重启 kill -1 PID三、pkill命令:根据进程名字批量杀进程
无需查询PID,直接通过进程名称批量终止,适合一键关闭同类服务。
# 优雅关闭所有nginx进程 pkill nginx # 强制关闭所有java进程 pkill -9 java四、线上杀进程规范(重要)
第一步:先用
kill PID优雅终止第二步:等待3-5秒,查看进程是否消失
第三步:仍然存在,再使用
kill -9 PID强制杀死
严禁线上直接执行 kill -9:数据库、中间件、业务程序会丢失内存未落地数据,引发生产事故。
五、僵尸进程处理方案
僵尸进程无法直接kill,只能杀死父进程,或者重启服务器;日常开发测试环境可忽略,生产环境需要及时排查父进程异常。
六、命令速记
精准杀单个进程:kill + PID
批量杀同名进程:pkill + 进程名
优先15优雅杀,迫不得已再用9强制杀