pidof是一個(gè)命令行實(shí)用程序,可讓您找到正在運(yùn)行的程序的進(jìn)程ID。
在本文中,我們將解釋如何使用Linux pidof命令。
如何使用pidof命令
對于基于Red Hat和Debian的發(fā)行版,有pidof的不同實(shí)現(xiàn)。 在Red Hat發(fā)行版中,pidof命令是procps-ng軟件包的一部分,而在Debian上,它是sysvinit-utils的一部分。 我們將介紹兩種實(shí)現(xiàn)方式共有的選項(xiàng)。
pidof命令的語法如下:
pidof [選項(xiàng)] 程序名稱
該命令接受零個(gè)或多個(gè)名稱作為參數(shù),但是通常,您只將一個(gè)名稱傳遞給pidof。
不帶任何選項(xiàng)調(diào)用時(shí),pidof將打印與給定名稱匹配的所有正在運(yùn)行的程序的PID。 例如,要查找vim的PID,應(yīng)運(yùn)行:
[linuxidc@linux:~/www.linuxidc.com]$ pidof vim
4942
如果有名稱與sshd匹配的正在運(yùn)行的進(jìn)程,則其PID將顯示在屏幕上。 如果未找到匹配項(xiàng),則輸出將為空。
輸出
4942
當(dāng)至少一個(gè)正在運(yùn)行的程序與請求的名稱匹配時(shí),pidof返回0。 否則,退出代碼為1。在shell腳本中使用時(shí),這很有用。
為確保僅顯示要搜索的程序的PID,請使用該程序的完整路徑名作為參數(shù)。 例如,如果您在兩個(gè)不同的目錄中有兩個(gè)同名的運(yùn)行程序,則pidof將顯示兩個(gè)運(yùn)行程序的PID。
默認(rèn)情況下,顯示匹配的正在運(yùn)行程序的所有PID。 使用-s選項(xiàng)強(qiáng)制pidof只顯示一個(gè)PID:
$pidof -s 程序名稱
-o選項(xiàng)允許您從命令輸出中排除具有給定PID的進(jìn)程:
$pidof -o pid 程序名稱
當(dāng)使用-o選項(xiàng)調(diào)用pidof時(shí),可以使用名為%PPID的特殊PID來表示調(diào)用Shell程序或Shell腳本。
要僅返回使用相同根目錄運(yùn)行的進(jìn)程的PID,請使用-c選項(xiàng)。
該選項(xiàng)僅適用于以root或sudo用戶身份運(yùn)行的pidof:
$pidof -c pid 程序名稱
pidof命令的用法示例
以下示例顯示了如何結(jié)合使用pidof命令和kill命令來終止程序。
假設(shè)Firefox瀏覽器已無響應(yīng),并且您需要終止Firefox進(jìn)程。 首先,使用pidof查找PID:
[linuxidc@linux:~/www.linuxidc.com]$ pidof firefox
該命令將打印所有Firefox進(jìn)程:
輸出
5231 5207 5166 5131 5090
一旦知道Firefox處理了PID,就發(fā)送SEGTERM信號終止所有PID:
[linuxidc@linux:~/www.linuxidc.com]$ sudo kill -9 5231 5207 5166 5131 5090
您還可以使用命令替換表達(dá)式$ $(…),用一個(gè)命令終止程序:
[linuxidc@linux:~/www.linuxidc.com]$ sudo kill -9 $(pidof firefox)
總結(jié)
pidof命令用于查找特定正在運(yùn)行的程序的PID。
pidof是一個(gè)簡單的命令,沒有太多選項(xiàng)。 通常,您只會使用要搜索的程序的名稱來調(diào)用pidof。
如果您有任何疑問或反饋,請隨時(shí)發(fā)表評論。
更多Linux命令相關(guān)信息見Linux命令大全 專題頁面 http://www.sfodin.cn/topicnews.aspx?tid=16