9.4-6 kill killall pkill
生活随笔
收集整理的這篇文章主要介紹了
9.4-6 kill killall pkill
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
kill:終止進(jìn)程
能夠終止你希望停止的進(jìn)程。kill 命令的參數(shù)選項(xiàng)及說明
-l?? ?列出全部的信號(hào)名稱 -p?? ?指定kill命令只打印相關(guān)進(jìn)程的進(jìn)程號(hào),而不發(fā)送任何信號(hào) -s?? ?指定要發(fā)送的信號(hào) [root@k8s-play ~]# kill -l #<=參數(shù)l顯示系統(tǒng)的所有信號(hào)。 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 [root@k8s-play ~]# kill -l SIGKILL #<=可以使用-l參數(shù)對(duì)信號(hào)名和數(shù)字信號(hào)互換。 9 [root@k8s-play ~]# kill -l 9 KILL常用信號(hào)
信號(hào)?? ??? ?說明 HUP(1)?? ?掛起,通常因終端掉線或用戶退出而引發(fā) INT(2)?? ?中斷,通常是按下Ctrl+c組合健來發(fā)出這個(gè)信號(hào) QUIT(3)?? 退出,通常是按下Ctrl+\組合鍵來發(fā)出這個(gè)信號(hào) KILL(9)?? 立即結(jié)束進(jìn)程的運(yùn)行 TERM(15)??終止,通常在系統(tǒng)關(guān)機(jī)時(shí)發(fā)送 TSTP(20)??暫停進(jìn)程的運(yùn)行,通常是按下Ctrl+z組合鍵來發(fā)出這個(gè)信號(hào) 更多細(xì)節(jié)請(qǐng)參考signal在線手冊(cè)的第七部分(man 7signal)。終止進(jìn)程
kill指令默認(rèn)使用的信號(hào)為15,用于結(jié)束進(jìn)程。如果進(jìn)程忽略此信號(hào),則可以使用信號(hào)9強(qiáng)制終止進(jìn)程。 一般是先通過ps等命令獲取到要終止進(jìn)程的進(jìn)程號(hào),然后直接使用“kill 進(jìn)程號(hào)”就可以了。 kill 2203?? ?? ????#<==Kill命令默認(rèn)使用的信號(hào)為15,這種格式也是最常用的。 kill -s 15 2203? ? #<==這種格式使用-s參數(shù)明確指定發(fā)送值為15的信號(hào),效果和 kill 2203 一樣。 kill -15 2203??? ??#<==上面的-s 15可以簡(jiǎn)寫為 -15 如果用上面的方法還是無法終止進(jìn)程,那么我們就可以用KILL(9)信號(hào)強(qiáng)制終止進(jìn)程。 kill -9 2203? ? #<==信號(hào)9會(huì)強(qiáng)行終止進(jìn)程,這會(huì)帶未一些副作用、如教據(jù)丟失,或者終端無法恢復(fù)到正常扶態(tài)等,因此應(yīng)盡量避免使用,除非進(jìn)程使用其他信號(hào)無法終止。擴(kuò)展:特殊信號(hào)0的應(yīng)用案例
在kill的所有信號(hào)中,有一個(gè)十分特殊的信號(hào)值0,使用格式為kill -0 $pid。其中的 -0 表示不發(fā)送任何信號(hào)給$pid對(duì)應(yīng)的進(jìn)程,但是仍然會(huì)對(duì)$pid是否存在對(duì)應(yīng)的進(jìn)程進(jìn)行檢查,如果$pid對(duì)應(yīng)的進(jìn)程已存在,則返回0,若不存在則返回1。下面是系統(tǒng)參考腳本 /etc/init.d/mysqld。killall:通過進(jìn)程名終止進(jìn)程
使用kill命令終止進(jìn)程還需要先獲取進(jìn)程的pid進(jìn)程號(hào),這個(gè)過程有點(diǎn)繁瑣,而使用killall命令就可以直接用“killall 進(jìn)程名”這種形式終止進(jìn)程。 killall [選項(xiàng)]? [進(jìn)程名] -c?? ?對(duì)于很長(zhǎng)的名字,要求能夠準(zhǔn)確匹配。默認(rèn)情況下,如果一個(gè)進(jìn)程名的長(zhǎng)度超過了15個(gè)字符,則無法使用整個(gè)名字(溢出了)。在這種情況下,killall會(huì)終止所有匹配名字前15個(gè)字符的所有進(jìn)程。而-e參數(shù)的作用是忽略模糊匹配項(xiàng)目。如果同時(shí)指定了-v選項(xiàng),則killall會(huì)針對(duì)每個(gè)忽略的記錄打印一條消息 -I? ??不區(qū)分大小寫匹配 -g?? ?終止屬于該進(jìn)程組的進(jìn)程 -i?? ?在終止進(jìn)程之前詢問是否確認(rèn) -l?? ?列出所有已知的信號(hào)名 -q?? ?如果沒有進(jìn)程終止則不提示 -r?? ?使用正則表達(dá)式匹配要終止的進(jìn)程名稱 -s?? ?用指定的信號(hào)代替默認(rèn)信號(hào) -u?? ?終止指定用戶的進(jìn)程 -v?? ?報(bào)告信號(hào)是否發(fā)送成功 -w?? ?等待所有被終止的進(jìn)程死去。killall每秒都會(huì)檢查一次被終止的進(jìn)程是否仍然存在,其僅在都死光后才返回。注意,如果信號(hào)被忽略,或者沒有起作用,或者進(jìn)程停留在僵尸狀態(tài),那么killall可能會(huì)永久等待 [root@cs6 ~]# killall crond [root@cs6 ~]# killall crond crond: 沒有進(jìn)程被殺死 [root@cs6 ~]# /etc/init.d/crond start 正在啟動(dòng) crond: [確定] [root@cs6 ~]# killall -w crond [root@cs6 ~]# killall -w crond crond: 沒有進(jìn)程被殺死終止指定用戶的所有進(jìn)程
killall -u www nginx? #<=這種方式可以終正所有歸屬于www用戶的nginx進(jìn)程pkill:通過進(jìn)程名終止進(jìn)程
pkil命令可通過進(jìn)程名終止指定的進(jìn)程。使用killal終止進(jìn)程需要連續(xù)執(zhí)行幾次,而pkill 可以殺死指定進(jìn)程及其所有子進(jìn)程。 pkill [選項(xiàng)] [進(jìn)程名] -t 終端?? ?殺死指定終端的進(jìn)程 -u 用戶?? ?殺死指定用戶的進(jìn)程通過進(jìn)程名終止進(jìn)程
[root@cs6 ~]# service crond status crond (pid 4641) 正在運(yùn)行... [root@cs6 ~]# pkill crond [root@cs6 ~]# service crond status crond 已死,但是 subsys 被鎖通過終端名終止進(jìn)程
[root@cs6 ~]# w 07:20:39 up 1 day, 22:40, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/4 10.0.0.1 00:59 0.00s 0.53s 0.00s w [root@cs6 ~]# pkill -t tty4通過用戶名終止進(jìn)程
[root@cs6 ~]# w 07:22:39 up 1 day, 22:42, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.0.0.1 07:21 1:34 0.07s 0.07s -bash root pts/4 10.0.0.1 00:59 0.00s 0.54s 0.00s w [root@cs6 ~]# pkill -u root Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(cs6-minimal) at 15:24:31.#<=使用 -u 選項(xiàng)殺死指定用戶的所有進(jìn)程,最好還是同時(shí)再指定進(jìn)程名去殺,以免誤殺服務(wù)。總結(jié)
以上是生活随笔為你收集整理的9.4-6 kill killall pkill的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10.5 arp:管理系统的arp缓存
- 下一篇: 10.4 route:显示或管理路由表