《LINUX教程:Linux下kill殺死進程詳解》要點:
本文介紹了LINUX教程:Linux下kill殺死進程詳解,希望對您有用。如果有疑問,可以聯系我們。
配景:這個Linux下kill命令總是記不住,在此稍作記錄,方便查看!
Linux kill 敕令詳解?
此時如果我想殺了火狐的過程就在終端輸入:
$ kill -s 9 1827
此中-s 9 制定了傳遞給進程的信號是9,即強制、盡快終止進程.各個終止信號及其作用見附錄.
簡單吧,但有個問題,進程少了則無所謂,進程多了,就會覺得痛苦了,無論是ps -ef 還是ps -aux,每次都要在一年夜串進程信息里面查找到要殺的進程,看的眼都花了.
進階篇:
改良1:
把ps的查詢結果通過管道給grep查找包括特定字符串的進程.管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入.
$ ps -ef | grep firefox
smx? ? ? 1827? ? 1? 4 11:38 ?? ? ? ? 00:27:33 /usr/lib/firefox-3.6.18/firefox-bin
smx? ? ? 12029? 1824? 0 21:54 pts/0? ? 00:00:00 grep --color=auto firefox
這次就清爽了.然后便是
$kill -s 9 1827
照樣嫌打字多?
使用pgrep:
一看到pgrep首先會想到什么?沒錯,grep!pgrep的p注解了這個命令是專門用于進程查詢的grep.
ps:然則如果有其他的進程時候,還是無法唯一確定,不是很靠譜.
改良:
$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9
闡明:
“grep firefox”的輸出成果是,所有含有關鍵字“firefox”的進程.
“grep -v grep”是在列出的進程中去除含有癥結字“grep”的進程.
“cut -c 9-15”是截取輸入行的第9個字符到第15個字符,而這正好是過程號PID.
“xargs kill -s 9”中的xargs命令是用來把前面命令的輸出成果(PID)作為“kill -s 9”命令的參數,并執行該命令.“kill -s 9”會強行殺掉指定進程.
我覺得這個還是比擬靠譜的,如果一次grep定位不到,可以多次grep.比如
改良:
$ ps -ef | grep firefox | awk '{print $2}' | xargs kill -9
kill: No such process
有一個比擬郁悶的地方,進程已經正確找到并且終止了,但是執行完卻提示找不到進程.
其中awk '{print $2}' 的作用便是打印(print)出第二列的內容.根據常規篇,可以知道ps輸出的第二列正好是PID.就把進程相應的PID通過xargs傳遞給kill作參數,殺掉對應的進程.
Linux腳本開頭#!/bin/bash和#!/bin/sh是什么意思以及區別
#!/bin/sh是指此腳本使用/bin/sh來解釋執行,#!是特殊的表現符,其后面根的是此解釋此腳本的shell的路徑.
其實第一句的#!是對腳本的解釋器法式路徑,腳本的內容是由解釋器解釋的,我們可以用各種各樣的解釋器來寫對應的腳本.
好比說/bin/csh腳本,/bin/perl腳本,/bin/awk腳本,/bin/sed腳本,甚至/bin/echo等等.
#!/bin/bash同理.
#!/bin/bash ps -ef |grep memcached | grep local | awk '{print $2}'|xargs kill -9
本文永遠更新鏈接地址:
維易PHP培訓學院每天發布《LINUX教程:Linux下kill殺死進程詳解》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9819.html