Linux下kill命令详解

kill命令

作用:

        发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。若仍无法终止该程序可用“-kill" 参数,其发送的信号为SIGKILL(9),将强制结束进程,使用ps命令或者jobs命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。


用法:

       kill [-s signal | -p] [--] pid...

       kill -l [signal]


参数:

        -a: 当处理当前进程时,不限制命令名和进程号的对应关系;

        -l  [signal]: 若不加信号编号(signal),将列出目前kill能够使用的信号有(signal)有哪些;

        -p: 指定kill 命令只打印相关的进程号,而不发烧任何信号;

        -s: [信号名称或编号]: 指定要送出的信号

        -u: 指定用户

常用的信号:man 7 signal

         每个信号对应一个数字,信号名称以SIG开头(可省略

         1) SIGHUP: 无须关闭进程而让其重读配置文件(类似reload)

         2) SIGINT: 终止正在运行的进程;相当于Ctrl+c

         3) SIGQUIT: 相当于Ctrl+\

         9) SIGKILL: 强制杀死正在运行的进程

       15) SIGTERM: 终止正在运行的进程

       18) SIGCOUNT: 继续运行

       19) SIGSTOP: 后台休息

       

        指定信号的方法:

         a、信号的数字标识:1, 2, 9

         b、信号完整名称:SIGHUP

         c、信号的简写名称:HUP    


  范例:

         范例一:      找出当前的bash环境下的后台工作,并强制删除
[root@centos6 ~]# jobs
[1]+  Stopped                 ping 127.2
[root@centos6 ~]# kill --9 %1; jobs            # 此种写法信号编号前是双横线
-bash: kill: -9: invalid signal specification
[1]+  Killed                  ping 127.2

        范例二:  列出所有的信号编号(signal number)及对应的信号名称
[root@centos6 ~]# kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX    

        范例三: init进程是不可杀的

[root@centos6 ~]# ps -ef | grep init
root          1      0  0 Jul01 ?        00:00:02 /sbin/init
root       7752   7135  0 02:52 pts/2    00:00:00 grep --color=auto init
[root@centos6 ~]# kill -9 1
[root@centos6 ~]# kill -HUP 1
[root@centos6 ~]# ps -ef | grep init
root          1      0  0 Jul01 ?        00:00:02 /sbin/init
root       7756   7135  0 02:53 pts/2    00:00:00 grep --color=auto init


        备注:

                init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动

         程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所有,init始终是第一个进程(其进程编号始终为1)。其它所有进程都是init进程的子孙。    

         init进程是不可杀的。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值