用途說明
pidof用于找出正在運作的程式的程序PID(findthe process ID of a running program.),程式可以是一個二進制執行程式,也可以是一個shell腳本。如果是找出java程式的程序PID,pidof就無能為力了,可以使 用ps -ef|grep java或jps -l來檢視java程序的資訊。通常找出程序PID的目的是确認程式是否在運作、或者為了把它殺掉、或者發送一個信号給它。
常用參數
格式:pidof program
找出program程式的程序PID,如果有多個就會全部列出,program不能是shell腳本名稱。
格式:pidof -s program
找出program程式的程序PID,隻列出一個。(Singleshot - this instructs the program to only return one pid.)
格式:pidof -x script
找出shell腳本script的程序PID。
參數:-o omitpid
參數:-o omitpid1 -oomitpid2
在列出的程序PID中忽略omitpid。可以有多個。
參數:-s
隻列出一個。
使用示例
示例一
[[email protected] root]# pidof pidof
24386
[[email protected] root]# pidof console
[[email protected] root]# pidof bash
8681 17650 2822316840
[[email protected] root]# pidof man
[[email protected] root]# pidof java
8882 27498 2748230945 940 24465 23811 23068 2171 7022 24641 32656 32526
[[email protected] root]# jps -l
25442sun.tools.jps.Jps
注:在這台機器上jps似乎不能很好的看java程序資訊。
[[email protected] root]#
示例二 檢視shell腳本的程序PID
下面示範了怎麼檢視腳本的PID的,可以發現通過不含路徑的腳本檔案名稱、或者執行時的路徑來檢視,其他方式不行。
[[email protected] ~]# ls /opt/imx/imx_web3q/update.sh
/opt/imx/imx_web3q/update.sh
[[email protected] ~]# ps -ef|grep update.sh
root 17989 17963 0 Dec09 pts/7 00:00:05 /bin/sh ./update.sh
root 29329 28002 0 20:10 pts/2 00:00:00 grep update.sh
[[email protected] ~]# pidof update.sh
[[email protected] ~]# pidof -x update.sh
17989
[[email protected] ~]# pidof -x /opt/imx/imx_web3q/update.sh
[[email protected] ~]# pidof ./update.sh
[[email protected] ~]# pidof -x ./update.sh
17989
[[email protected] ~]#