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 
  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/yanxin880526/p/4735883.html
Copyright © 2011-2022 走看看