goawalk 2010-12-13
pidof用于找出正在运行的程序的进程PID(find the 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,只列出一个。(Single shot - this instructs the program to only return one pid.)
格式:pidof -x script
找出shell脚本script的进程PID。
参数:-o omitpid
参数:-o omitpid1 -o omitpid2
在列出的进程PID中忽略omitpid。可以有多个。
参数:-s
只列出一个。
[root@smsgw root]# pidof pidof
24386
[root@smsgwroot]#pidofconsole
[root@smsgwroot]#pidofbash
8681176502822316840
[root@smsgwroot]#pidofman
[root@smsgwroot]#pidofjava
888227498274823094594024465238112306821717022246413265632526
[root@smsgwroot]#jps-l
25442 sun.tools.jps.Jps注:在这台机器上jps似乎不能很好的看java进程信息。[root@smsgw root]#
下面演示了怎么查看脚本的PID的,可以发现通过不含路径的脚本文件名称、或者执行时的路径来查看,其他方式不行。
[root@web ~]# ls /opt/imx/imx_web3q/update.sh
/opt/imx/imx_web3q/update.sh
[root@web~]#ps-ef|grepupdate.sh
root17989179630Dec09pts/700:00:05/bin/sh./update.sh
root2932928002020:10pts/200:00:00grepupdate.sh
[root@web~]#pidofupdate.sh
[root@web~]#pidof-xupdate.sh
17989
[root@web~]#pidof-x/opt/imx/imx_web3q/update.sh
[root@web~]#pidof./update.sh
[root@web~]#pidof-x./update.sh
17989
[root@web ~]#【1】hscripts.com Linux pidof 命令? 是什么
【2】阿勃的 blog [翻译] pidof 命令手册
返回 我使用过的Linux命令系列总目录