zoukankan      html  css  js  c++  java
  • 程序的删除kill、killall

    发送信号给程序,或者列出信号集
    SYNOPSIS
           kill [-s SIGNAL | -SIGNAL] PID...
           kill -l [SIGNAL]...
     
    1.信号操作简要说明
    1)kill -l。列出信号名和
    2)kill + 信号 + %jobnumber。表示给某个工作发信号
    3)kill + 信号 + PID。表示给某个PID发信号
     
    2.重要的几个信号
     
    代号 名称 内容
    1 SIGHUP 代表『让该 PID 重新读取自己的设定档』 ,类似重新启动
    2 SIGINT 代表用键盘输入的 [ctrl]-c 来中断一个程序的进行。
    9 SIGKILL 代表强制中断一个程序的进行,如果该程序进行到一半, 那么尚未完成的部分可能会 有『半产品』产生,类似 vim会有 .filename.swp 保留下来。
    15 SIGTERM 以正常的结束程序来终止该程序。由于是正常的终止, 所以后续的动作会将他完成。 不过,如果该程序已经发生问题,就是无法使用正常的方法终止时,输入这个 signal也是没有用的。
     
    例1:以 ps 找出 syslog 这个服务的 PID 后,再使用 kill 重新读取 syslog 的设定文件数据:
    # kill -SIGHUP `ps aux|grep 'syslog'|grep -v 'grep'|awk '{print $2}'`
    killall
    由于 kill 后面必须要加上 PID (或者是 job number),所以,通常 kill 都会配合 ps, pstree 等指令, 因为我们必须要找到相对应的那个程序的 ID 嘛!但是,如此一来,很麻烦~ 有没有可以利用『下达指令 的名称』来给予讯号的?举例来说,能不能直接将 syslog 这个程序给予一个 SIGHUP 的讯号呢?可以的! 用 killall 吧!
    [root@linux ~]# killall [-iIe] [-signal][command name] 参数: 
    -i  :interactive 的意思,交互式的,若需要删除时,会出现提示字符给使用者; 
    -e  :exact 的意思,表示『后面接的 command name 要一致』,但整个完整的指令 
    不能超过 15 个字符。  
    -I  :指令名称(可能含参数)忽略大小写。 

    例1:给予syslogd 这个指令启动的PID一个SIGHUP的讯号

    [root@linux ~]# killall -1 syslogd
    # 如果用 ps aux 仔细看一下,syslogd 才是完整的指令名称。但若包含整个参数,
    # 则 syslogd -m 0 才是完整的呢! 

    范例二:强制终止所有以 httpd 启动的程序

    [root@linux ~]# killall -9 httpd 
  • 相关阅读:
    Java微信二次开发(八)
    Java微信二次开发(七)
    Java微信二次开发(六)
    Java微信二次开发(五)
    Java微信二次开发(四)
    Java微信二次开发(三)
    IIS中X509Certificate遇见的问题
    SQL Server 数据库定时自动备份
    ASP.NET 5 (vNext) 理解和概述
    ASP.NET 5 (vNext) Linux部署
  • 原文地址:https://www.cnblogs.com/yanxin880526/p/4735883.html
Copyright © 2011-2022 走看看