• 程序的删除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 
  • 相关阅读:
    Robocode教程4——Robocode的游戏物理
    JAVA:获取系统中可用的字体的名字
    Robocode游戏规则
    Robocode教程2——你的第一个robo,取个好名字哦
    Robocode教程1——安装、运行、配置
    第二十四章 异常和错误处理 6异常类与模板的关系 简单
    第二十四章 异常和错误处理 5异常类的虚函数 简单
    第二十三模板 18.4算法类 简单
    解决不能通过'/tmp/mysql.sock'连到服务器 简单
    第二十四章 异常和错误处理 4创建异常类的成员函数 简单
  • 原文地址:https://www.cnblogs.com/yanxin880526/p/4735883.html
Copyright © 2020-2023  润新知