Linux下kill命令的学习,(主要根据man手册进行的翻译)
名字
kill -终止一个进程
格式
kill [-s signal | -p] [--] pid ..
kill -l [signal]
描述
这个kill命令发送一个指定的命令给一个指定的进程或者进程堆。如果没有信号被指定, SIGTERM(15)信号被发送。这个SIGTERM信号将结束所有不能接受该信号的进程,对于其他进程,能捕捉到这个信号,就要用SIGKILL(9)来强制杀掉该进程。
大多数现代的脚本都内置一个杀死功能,使用的方法相当于这里描述的命令。'-a'和'-p'选项,以及通过命令名指定pids的可能性是本地的延期。
如果sig等于0,那么没有信号发送,但错误检测仍然是形成的。
选项
pid 指定kill函数将发送信号的进程,可以为下列五种之一
n 如果n大于0,pid为n的进程将接受信号
0 将信号传给和目前进程相同进程组的所有进程
-1 所有进程ID大于1的将接受该信号,也就是广播传送给系统内所有的进程
-n将信号传给进程组识别码为pid绝对值的所有进程,当一个参数以-n的形式给出, 以为它将表示一个进程组,或者通过 ‘--’限定
-s signal 指定要发送的信号
-u 指定用户
-l signal 如果不加信号的参数,则会显示所有的信号
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
实用实例
实例1 先用ps aux查看所有后台进程
命令:
kill 3268
输出:
[root@localhost part]# ps -ef|grep vim
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
[root@localhost part]# kill 3268
[root@localhost part]# kill 3268
-bash: kill: (3268) - 没有那个进程
实例2 彻底杀死某进程
[root@localhost part14]# ps -ef|grep vim
[root 20295 11955 0 07:04 pts/1 00:00:00 grep vim
[root@localhost part14]# kill -9 20295
bash: kill: (20295) - 没有那个进程
实例3 init进程是不可杀死的
[root@localhost part14]# kill -9 1
[root@localhost part14]# ps -ef|grep init
[root 1 0 0 Oct23 ? 00:00:01 /sbin/init
[root 20465 20427 0 07:13 pts/2 00:00:00 grep init
[root@localhost part14]# kill -s SIGKILL 1
[root@localhost part14]# ps -ef|grep init
[root 1 0 0 Oct23 ? 00:00:01 /sbin/init
[root 20491 20427 0 07:15 pts/2 00:00:00 grep init
[root@localhost part14]#