在CentOS系统中,kill
命令用于终止正在运行的进程,以下是关于CentOS中kill
命令的详细说明:
基本用法
1、确定要杀死的进程:使用ps ef
命令查看当前系统的所有进程,并找到需要终止的进程ID(PID),要查找httpd进程,可以使用以下命令:
ps ef | grep httpd
2、发送TERM信号:标准的kill
命令通常发送TERM(15)信号来终止进程:
kill TERM PID
3、强制杀死进程:如果进程没有响应,可以使用9选项强制杀死:
kill 9 PID
4、杀死所有子进程:确保在杀死父进程之前,先杀死其所有的子进程,以防止僵尸进程的产生:
kill l PID
5、优雅地结束进程:使用l选项尝试以启动进程的用户已注销的方式结束进程:
kill l PID
6、杀死同一进程组内的所有进程:使用killall
命令指定要终止的进程名称,而非PID:
killall httpd
7、停止和重启进程:使用kill HUP PID
命令让Linux和缓地执行进程关闭,然后立即重启:
kill HUP PID
8、重启服务:当对配置文件进行修改后,可以使用以下命令重启服务:
systemctl restart service_name
常见信号及其含义
信号 | 描述 |
1 | SIGHUP,终端挂起 |
2 | SIGINT,中断(Ctrl+C) |
3 | SIGQUIT,退出 |
9 | SIGKILL,强制杀死进程 |
15 | SIGTERM,软件终止信号,默认值 |
17 | SIGCHLD,子进程终止 |
19 | SIGSTOP,停止进程 |
20 | SIGTSTP,用户定义的信号 |
21 | SIGTTOU,后台写入 |
22 | SIGTTIN,后台读取 |
23 | SIGUSR1,用户定义的信号1 |
24 | SIGUSR2,用户定义的信号2 |
28 | SIGWINCH,窗口大小改变 |
29 | SIGIO,输入/输出可用 |
30 | SIGPIPE,管道破裂 |
31 | SIGRTMIN,实时信号的最小值 |
32 | SIGRTMIN+1 |
33 | SIGRTMIN+2 |
34 | SIGRTMAX2 |
35 | SIGRTMAX1 |
36 | SIGRTMAX,实时信号的最大值 |
注意事项
1、避免僵尸进程:在杀死父进程之前,应先杀死其所有子进程,以防止僵尸进程的产生。
2、谨慎使用9选项:使用kill 9 PID
会强制杀死进程,但不会进行清理工作,只有在其他信号无效时才使用此选项。
3、检查僵尸进程:通过ps ef
确认没有剩余僵尸进程,如果僵尸进程被init收养且占用大量资源,可能需要重启系统。
FAQs
1、问题:如何优雅地结束一个进程?
答案:使用kill l PID
命令尝试以启动进程的用户已注销的方式结束进程,这个命令也试图杀死所留下的子进程,但可能不总是成功,有时需要先手工杀死子进程。
2、问题:如何杀死同一进程组内的所有进程?
答案:使用killall
命令指定要终止的进程名称,而非PID,要杀死所有名为httpd的进程,可以使用killall httpd
。