一. 终止进程的工具 kill 、killall 、pkill、xkill
终止一个进程或终止一个正在运行的程序, 一般是通过 kill 、killall 、pkill、xkill
等进行。 比如一个程序已经死掉, 但又不能退出, 这时就应该考虑应用这些工
具。
另外应用的场合就是在服务器管理中, 在不涉及数据库服务器程序的父进程的
停止运行, 也可以用这些工具来终止。 为什么数据库服务器的父进程不能用这些工具杀死呢?
原因很简单, 这些工具在强行终止数据库服务器时, 会让数据库产生更多的文件碎片, 当碎
片达到一定程度的时候, 数据库就有崩溃的危险。 比如 mysql 服务器最好是按其正常的程序
关闭,而不是用 pkill
mysqld 或 killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子
进程,我们应该用 kill 来杀掉。
1. kill
kill 的应用是和 ps 或 pgrep 命令结合在一起使用的;
kill 的用法:
kill 〔信号代码〕 进程 ID
注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止;
举例:
[root@localhost ~]# ps auxf |grep httpd
root 4939 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 \_ grep httpd
root 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpd
apache 4833 0.0 0.6 24364 4932 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4834 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4835 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4836 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4840 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
我们查看 httpd 服务器的进程;您也可以用 pgrep -l httpd 来查看;