• N天学习一个linux命令之kill


    用途

    用于终止进程

    用法

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

    说明

    1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对此做处理的进程),如果需要强制杀死进程,需要传信号9,此信号不能被进程捕获,杀死进程一般传信号15

    2.杀死进程可能会丢失数据,需要谨慎操作

    3.信号可以传名字也可以是数字,信号可以通过-N方式指定

    4.这里所说的kill是指操作系统的kill命令,不是只shell内置的kill命令,一般情况下使用语法都差不多,shell命令会兼容

    常用参数

    -s signal
    指定需要发送的信号,可以是数字也可以是名字

    -l [signal name]
    列出支持的信号列表,如果后面跟上信号名会显示对应的信号数字

    -a
    杀死所有匹配的进程,不限制是否和当前的进程uid是否一样

    -p
    只输出进程号,不发送指定的信号

    实践

    1.强制删除指定的进程

    [root@vm ~]# ps aux | grep t.php
    root     31076 99.4  0.4 237040 13240 pts/1    R+   15:32   7:30 /u01/server/php/bin/php.bin t.php
    root     32340  0.0  0.0 103324   916 pts/2    S+   15:39   0:00 grep t.php
    [root@vm ~]# kill -s 9 31076
    

    2.显示信号列表

    [root@vm ~]# 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
    

    3.杀死指定命令名的进程

    shell内置的kill命令不支持,只能使用系统kill命令

    [root@vm ~]# ps aux | grep t.php
    root      1466 95.1  0.4 237040 13240 pts/1    R+   15:47   0:44 /u01/server/php/bin/php.bin t.php
    root      1482 95.7  0.4 237040 13244 pts/2    R+   15:47   0:38 /u01/server/php/bin/php.bin t.php
    root      1631  0.0  0.0 103328   928 pts/3    S+   15:48   0:00 grep t.php
    [root@vm ~]# /bin/kill php.bin
    [root@vm ~]# ps aux | grep t.php
    root      1659  0.0  0.0 103324   900 pts/3    R+   15:48   0:00 grep t.php
    

    4.杀死多个进程

    [root@vm ~]# ps aux | grep t.php
    root      1782 98.0  0.4 237040 13240 pts/1    R+   15:49   0:44 /u01/server/php/bin/php.bin t.php
    root      1792 90.6  0.4 237040 13240 pts/2    R+   15:49   0:38 /u01/server/php/bin/php.bin t.php
    root      1960  0.0  0.0 103324   904 pts/3    S+   15:50   0:00 grep t.php
    [root@vm ~]# kill 1782 1792
    [root@vm ~]# ps aux | grep t.php
    root      2024  0.0  0.0 103324   900 pts/3    S+   15:50   0:00 grep t.php
    

    5.不杀死进程,只显示进程号

    [root@vm ~]# ps aux | grep t.php
    root      2523 94.0  0.4 237040 13244 pts/1    R+   15:53   0:15 /u01/server/php/bin/php.bin t.php
    root      2535 92.3  0.4 237040 13240 pts/2    R+   15:53   0:12 /u01/server/php/bin/php.bin t.php
    root      2560  0.0  0.0 103324   900 pts/3    S+   15:53   0:00 grep t.php
    [root@vm ~]# /bin/kill -p php.bin
    2523
    2535
    

    参考资料

    【1】man kill
    【2】每天一个linux命令(42):kill命令
    http://www.cnblogs.com/peida/archive/2012/12/20/2825837.html
    【3】各种信号及其用途-见最后面的附件
    http://blog.csdn.net/andy572633/article/details/7211546
    【4】列出所有的 Bash Shell 内置命令
    http://blog.csdn.net/imxiangzi/article/details/50377904
    【5】bash内置命令
    http://www.cnblogs.com/blue-sea-sky/p/5506312.html
    【6】Linux 进程状态
    http://www.cnblogs.com/itech/p/3208261.html
    【7】Linux进程间通信
    http://www.cnblogs.com/linshui91/archive/2010/09/29/1838770.html

  • 相关阅读:
    页面打印
    scala
    IntelliJ Idea 常用快捷键列表
    flume
    spring事务管理方式,aop
    oldboy es和logstash
    elasticsearch视频34季
    elasticsearch视频
    python3
    git
  • 原文地址:https://www.cnblogs.com/wadeyu/p/8493837.html
Copyright © 2020-2023  润新知