Linux中kill -2、kill -9等区别 && kill signal汇总



 kill号召用于塞住约定的工序(terminate a 工序),是UNIX/Linux进步凑合着活下去的传播次。凡,我们的必要的塞住某个或某个工序。,率先运用PS/PIDOF/pStrue/Topy和另外瞄准来变卖预期的结果工序PID。,当时的敷kill号召来偷走该工序。kill号召的别的诸如此类人善行执意向约定的工序或工序组发送旌旗暗记(The  command kill sends the specified signal to the specified process or process 组),剧照决定进步号前提仍为PID。比方,有大多数人宣言运用嗟叹旗作为标明的扳机。。

一 经用参量

体式:kill

体式:kill -TERM

将SIGPROTER射击发送到约定的进步,以防进步缺席挂钩射击,进步塞住(以防 no signal is specified, the TERM signal is sent.  The TERM signal will kill processes which do not catch this 射击。

体式:kill -l

列出一切的射击的解释(捣碎) a list of signal 名字。  These are found in /usr/include/linux/)。仅仅第九种SIGKEY可以在缺席诸如此类前提的健康状况下塞住。,另诸如此类人射击处置有疏忽的生产能力。。以下是诸如此类人协同的射击:

HUP     1   终点站破败

INT     2    脱离(同 Ctrl + C)

QUIT    3   离开(批准地) Ctrl + )

TERM    15    塞住

KILL    9    逼迫塞住

CONT    18   陆续(与终止相反), fg/bg号召)

STOP    19   逗留(批准地) Ctrl + Z)

体式:kill -l

显示约定射击的数量。

体式:kill -9

体式:kill -KILL

逼迫抢走约定的进步,不在前头约定约定进步的塞住。

体式:kill %

体式:kill -9 %

抢走约定的使命(可以列出敷顺序作业)

体式:kill -QUIT

体式:kill -3

精神健全的撤兵。

killall号召

killall号召抢走相同工序组内的一切的工序。容许其塞住的进步的解释。,而失去嗅迹PID。

# killall httpd  

二、示例

1)率先运用PS查找工序,当时的用kill偷走。

[root@new55 ~]# ps EF-格雷普 vim

root      3368  2884  0 16:21 pts/1    00:00:00 vim install.log

root      3370  2822  0 16:21 pts/0    00:00:00 grep vim

[root@new55 ~]# kill 3368

[root@new55 ~]# kill 3368

-bash: kill: (3368) – 失去嗅迹指前面提到的事物工序

三、kill signal

02  1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL
03  5) SIGTRAP  6) SIGABRT  7) SIGBUS   8) SIGFPE
04  9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
05 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
06 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
07 21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU
08 25) SIGXFSZ 26) SIGVTALRM   27) SIGPROF 28) SIGWINCH
09 29) SIGIO   30) SIGPWR  31) SIGSYS  34) SIGRTMIN
10 35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
11 39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
12 43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
13 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
15 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
16 59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
17 63) SIGRTMAX-1  64) SIGRTMAX

列表中,编号1 ~ 31的射击是经外传说UNIX帮助的射击。,这是诸如此类人不可信赖的的射击(非实时),编号32 ~ 63射击后头张开。,高处可信赖的射击(实时射击)。不可信赖的射击和可信赖的射击暗切中要害差莫非,可能性形成射击滴,后者不克不及的。

接下来我们的将议论不足SIGRTMIN的射击。。

1) SIGHUP

此射击在用户终点站衔接完毕时收回(精神健全的或, 通常在终点站把持工序完毕时, 流通的相同交往切中要害每个作业, 此刻,它们不再与把持终点站正中定位联。。

登录到Linux时,该体系被分分配物登录用户的终点站(交往)。。在这样地终点站上运转的一切的顺序,象征舞台前部装置进步组和底色进步组,大抵,它属于这样地。 Session。当用户离开Linux登录时,Telmin的舞台前部装置进步组和底色输出进步。此射击的默许买卖是塞住进步。,因而舞台前部装置 程和底色将塞住终点站输出的工序。。但你可以捕获到这样地射击,譬如,WGET可以挂钩嗟叹射击。,而且疏忽它,因而使相等你离开Linux登录,wget也 可以持续下载。

除此之外,终点站终点站防护装置进步,此射击用于流通的它再次读取配置提出。。

2) SIGINT

顺序塞住(脱离)射击, 当用户打印提出内使具有特征(通常是CTRL—C)时,它们收回,用于流通的舞台前部装置进步组塞住进步。

3) SIGQUIT

批准地SIGITT, 可是它是由诸如此类人离开使具有特征把持的(通常是CTRL) 当收执到SigDutt离开时,该进步将出示心提出。, 在这样地意思上,它批准地顺序误解射击。。

4) SIGILL

合法指挥的被给予。 通常因可给予提出它本身是误解的。, 或尝试给予履历段。 当堆栈溢流管时,可以产生这样地射击。。

5) SIGTRAP

它是由断点指挥的或另外用陷阱捕捉指挥的产生的。 调试器运用。

6) SIGABRT

必要由停止有或起作用出示的射击。。

7) SIGBUS

合法地址, 象征内存地址局外人(局外人)误解。譬如,逗留诸如此类人具有四价元素字长的约整数, 但它的地址失去嗅迹乘数为4。。它与SIGSEGV的分别分娩后者是鉴于对合法内存地址的合法逗留泉水的(如逗留不属于本人内存空间或只读内存空间)。

8) SIGFPE

当致命的算术运算出时期倒错收回。 不光仅是浮点十进法运算偏航, 它还象征一切的另外算术误解,如溢流管和除数。。

9) SIGKILL

它被用来立刻完毕顺序的买卖。 此射击不克不及被忍住。、可作为基础的与漠视。以防凑合着活下去员撞见进步不克不及终止,你可以尝试发送这样地射击。

10) SIGUSR1

供用户运用

11) SIGSEGV

进攻逗留未分分配物本人的内存, 或许进攻在缺席作曲学术权威的健康状况下将履历作曲内存地址。

12) SIGUSR2

供用户运用

13) SIGPIPE

管道分裂。这样地射击通常是由进步间表明产生的。,譬如,运用FIFO(管道)表明的两个进步。,在不翻开管道的健康状况下读取管道或不测塞住管道。,作曲工序将收执到SIGBOST射击。。除此之外,没有活力的两个进步与socket表明。,作曲工序是作曲套接字,读取进步已塞住。

14) SIGALRM

秒表时机掌握射击, 计算现实时期或秒表时期。 告警功用运用射击。

15) SIGTERM

顺序完毕(塞住)射击, 与SIGKILL差别的是,射击可以被闭塞和处置。。通经用来恳求顺序从本人的精神健全的离开。,shell命令kill由于不到庭而败诉产生这样地射击。以防进步不克不及终止,我们的要试试塞加尔。

17) SIGCHLD

在子工序完毕时, 父进步收执此射击。。

以防父进步不处置此射击,缺席观望形势后再作决定(观望形势后再作决定)子工序。,子进步被塞住,但它还象征内核进步表切中要害表项。,这样地工序的子工序称为僵尸工序。。这种觉得 我们的霉臭转移(父进步或疏忽SIGHORD射击),剧照诱惹它,或它从观望形势后再作决定派生的子工序,或许父进步率先塞住,此刻,子进步的塞住被非本意的举措居住。。

18) SIGCONT

让诸如此类人终止的工序持续。 此射击不克不及被忍住。. 可以用诸如此类人handler来让顺序在由stopped陈述变为持续给予时使筋疲力尽特定的的任务. 譬如, 重行显示情绪。

19) SIGSTOP

终止进步的给予。 睬它和terminate此外interrupt的分别:该进步还未完毕, 朴素地暂停一下。 此射击不克不及被忍住。, 处置或疏忽。

20) SIGTSTP

终止运转工序, 但该射击可以被可作为基础的与漠视. 当用户输出SURP使具有特征(通常是CTRL—Z)时,发送射击。

21) SIGTTIN

当底色任务从用户终点站读取履历时, 此作业切中要害一切的进步将收执SIGTTIN射击。 这些进步在由于不到庭而败诉时将终止给予。

22) SIGTTOU

批准地SIGTTIN, 但在作曲终点站时(或修正终点站方式)

23) SIGURG

当紧要履历或带外履历抵达套接字时,

24) SIGXCPU

超越CPU时期资源限度局限。 这样地限度局限可以经过GeTrimeS/SeTrimeRead来读取/更改。。

25) SIGXFSZ

当进步进攻张开提出以超越提出浆糊资源时。

26) SIGVTALRM

创造秒表射击。 批准地SIGALRM, 可是计算是由进步居住的CPU时期。

27) SIGPROF

与Sigalrm/SigvTalm批准, 但象征该进步用的CPU时期此外体系必要的时期.

28) SIGWINCH

当浆糊时尚界时,窗口浆糊会产生变换。

29) SIGIO

提出代理符已预备准备好的, 可以开端输出/输出买卖。

30) SIGPWR

Power failure

31) SIGSYS

合法体系必要。

在下面的射击列表中,无法挂钩顺序、被阻断或疏忽的射击是:SIGKILL,SIGSTOP

无法回复到默许举措的射击是:SIGILL,SIGTRAP

默许健康状况下通向进步停止的射击是:SIGABRT,SIGBUS,SIGFPE,SIGILL,SIGIOT,SIGQUIT,SIGSEGV,SIGTRAP,SIGXCPU,SIGXFSZ

通向进步离开的默许射击是:SIGALRM,SIGHUP,SIGINT,SIGKILL,SIGPIPE,SIGPOLL,SIGPROF,SIGSYS,SIGTERM,SIGUSR1,SIGUSR2,SIGVTALRM

默许值通向进步终止的射击是:SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU

默许进步疏忽的射击是:SIGCHLD,SIGPWR,SIGURG,SIGWINCH

除此之外,Sigo离开SVR4,正中偏误;当进步挂起时,SIGCONT持续,别的就会被漠视,不克不及被忍住。

大抵,在Linux 壳中

ctrl-c 是发送 SIGINT 射击, 

ctrl-z 是发送 SIGSTOP射击 

ctrl-d 不发送射击,相反,它代表诸如此类人特别的二元系值。,表现 EOF 

具体来说,可以经过 A检查体系配置,如

# stty -a

speed 38400 baud; rows 35; columns 166; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;

lnext = ^V; flush = ^O; min = 1; time = 0;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase 终止 -echoprt echoctl echoke

几种公共用地:

kill -SIGSTOP $pid  # 相当于 ctrl-z
kill -SIGCONT $pid  # 相当于 fg
kill -SIGINT $pid   # 相当于 ctrl-c

可以运用本子变卖

echo -e ”\00X”   或    echo $”\00X”    X表现十进法数

如:

Ctrl-A 用 \001

Ctrl-B 用 \002

Ctrl—C运用 \003

CTRL—D运用 \004

… …

Ctrl-Z 用 \032

如,表达CTRL—D,可以用

echo -e ”\004”

霉臭多少运用shell在终点站下滴CTRL Z,ctrl+c,CTRL D等

我试过几种办法来做。,以CTRL—Z为例
echo ^z
echo -e \0xx不认识CTRL Z代表0。
echo -e “Alt+\0xx”
system ( echo -e \”\\”0xx”\” )

通常来说:
ctrl-c 是发送 SIGINT 射击,
ctrl-z 是发送 SIGSTOP射击
ctrl-d 不发送射击,相反,它代表诸如此类人特别的二元系值。,表现 EOF

具体来说,你可以 stty -a 检查体系设置

以防您想在本子中变卖它,举个先例:

sleep 100 &
pid=$!
kill -SIGSTOP $pid  # 相当于 ctrl-z
kill -SIGCONT $pid  # 相当于 fg
kill -SIGINT $pid   # 相当于 ctrl-c

发表评论

电子邮件地址不会被公开。 必填项已用*标注