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

kill –l [signal]

  终止指定进程。命令kill将指定的信号发送到指定的进程或进程组。如果没有指定信号,则发送SIGTERM信号。SIGTERM信号将终止不捕获该信号的进程。对于其他进程,可能需要使用kill(9)信号,因此此信号无法捕获。

  如今大所述shell都有内置的kill函数,其用法与此描述的命令非常相似。’-a’和’-p’选项以及通过命令名指定pids的可能性是本地扩展。

  如果sig为0,呢不发送任何信号,但人会执行错误检测。

(1).选项

pid… 指定kill应该放出信号的进程列表。每个pid可以是以下五个之一:

  n 其中n大于0。发出信号给pid为n的进程

  0 发信号通知当前进程组中的所有进程

  -1 发信号给pid大于1的所有进程

  -n 其中n大于1。发送信号给进程组n中所有进程。当给出一个形式为-n的参数时,它表示一个进程组,而且必须首先指定信号,或者该参数前面必须是--选项,否则它将被视为发送的信号。

  commandname 发送信号给使用该名称调用的所有进程

-s signal 指定要发送的信号,信号可以是信号名称或数字。
-l 打印型号名称列表。可以在/usr/include/linux/signal.h中找到
-a 当处理进程时,不限制命令名和进程号的对应关系
-p 指定kill只打印指定进程的进程ID(pid),而不发送任何信号。

(2).实例

  列出所有信息,kill -l

[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

  只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:

SIGHUP      1 终端断线
SIGINT 2 中断(同 Ctrl + C)
SIGQUIT 3 退出(同 Ctrl + \)
SIGKILL 9 强制终止
SIGTERM 15 终止(正常结束) ,缺省信号
SIGCONT 18 继续(同fg/bg命令)
SIGSTOP 19 停止
SIGTSTP 20 暂停(同 Ctrl + Z)

  显示指定信号的数值,可以看到有没有前缀SIG并没有影响

[xf@xuexi ~]$ kill -l SIGKILL
9
[xf@xuexi ~]$ kill -l KILL
9
[xf@xuexi ~]$ kill -l SIGTERM
15
[xf@xuexi ~]$ kill -l TERM
15

  注意:init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!

(3).其他

Linux进程的管理:

  进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行多个进程。我们不关心这些进程是如何分配的,或者是内核如何管理分配时间片的,所关系的只是如何去控制这些进程,让它们更好的为用户服务。

  Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。

1)交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行

2)批处理进程和终端没有联系,是一个进程序列。

3)监控进程(也称系统守护进程)是Linux系统启动时启动的进程,并且在后台运行。例如,httpd是著名的Apache服务器的监控进程。

Kill命令工作原理:

  向Linux内核发送一个系统操作信号和摸个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们可以看到系统运行许多进程,有时就需要使用kill中止默写进程来提高系统资源。在讲解安装和登录命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统锁死时,可以切换到其他虚拟控制台关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。

Linux命令之kill的更多相关文章

  1. linux命令总结kill命令详解

    1.作用 kill命令用来中止一个进程. 2.格式 kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ] 3.参数 -s:指定发送的信号. ...

  2. 每日linux命令之kill

    1.命令格式: kill[参数][进程号] 2.命令功能: 发送指定的信号到相应进程.不指定型号将发送SIGTERM(15)终止指定进程.如果任无法终止该程序可用“-KILL” 参数,其发送的信号为S ...

  3. linux 命令——42 kill (转)

    Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...

  4. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  5. Linux命令(005) -- kill、pkill和killall的比较

    kill命令用来“杀掉”指定进程PID的进程.终止一个前台进程可以使用Ctrl+C,终止一个后台进程就须用kill命令.kill命令是通过向进程发送指定的信号来结束相应进程的.在默认情况下,kill命 ...

  6. linux命令之kill篇

    作业四:查询firewall进程,然后杀死 [root@localhost 桌面]# ps -aux |grep firewall root        772  0.0  2.0 327912 2 ...

  7. 每天一个linux命令(42):kill命令

    Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须 ...

  8. 每天一个linux命令(34):kill命令

    Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...

  9. linux命令(8)kill命令

    kill命令: Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于 ...

随机推荐

  1. [洛谷P4015]运输问题

    题目大意:有m个仓库和n个商店.第i个仓库有 $a_{i}$ 货物,第j个商店需要$b_{j}$个货物.从第i个仓库运送每单位货物到第j个商店的费用为$c_{i,j}$​​.求出最小费用和最大费用 题 ...

  2. 【BZOJ 1124】[POI2008] 枪战Maf Tarjan+树dp

    #define int long long using namespace std; signed main(){ 这个题一看就是图论题,然后我们观察他的性质,因为一个图论题如果没有什么性质,就是真· ...

  3. COGS1752. [BOI2007]摩基亚Mokia CDQ

    CDQ的板子题 #include<cstdio> #include<cstring> #include<iostream> #include<algorith ...

  4. 分享一些JavaScript简易小技巧

    特性检测而非浏览器检测 因为某某特性某浏览器不支持,我们经常的做法是在代码中直接先做浏览器判断如: 1 if(Broswer.isFirfox){ 2     //do something 3 } 其 ...

  5. AngularJs开发——控制器间的通信

    AngularJs开发——控制器间的通信 指令与控制器之间通信,无非是以下几种方法: 基于scope继承的方式 基于event传播的方式 service的方式 基于scope继承的方式 最简单的让控制 ...

  6. tomcat内存配置及配置参数详解

    1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟 ...

  7. hibernate连接oracle数据库

    前言:以下所有的操作都是基于你已经成功安装了oracle数据库并且java的开发环境正常的情况下进行的. 如果没有完善请先配置基础环境. 第一步:配置需要的环境(下载并导入需要的包). 下载链接:ht ...

  8. java replace方法

    一:前言 replace自己老是忘记参数是那个替换那个,自己就把replace方法全部给弄了一遍 二:内容 package org.replaceDemo; public class ReplaceD ...

  9. win 7 64 位系统驱动签名

    自己开发未经签名的驱动无法加载,关闭Windows 7系统中的驱动签名强制要求 bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS

  10. [POJ2406&POJ1961]用KMP解决字符串的循环问题两例

    翻阅了一下网上资料,发现大部分都说这题是找规律...或是说YY出的一个算法..不会证明... 然后就脑补了一下证明 ~ 结论:对于一个字符串S[1..N],如果N mod (N-next[N])=0 ...