当前位置: 技术问答>linux和unix
已知进程名(python写的守护进程) 查该进程是否存在如何处理?
来源: 互联网 发布时间:2016-04-29
本文导语: 如果一般C写的话 pidof xxx(进程名) 就会返回进程的pid了,也就知道是否存在此进程了, 但是,如果是python的 pidof python xxx 这样,和pidof python 是一样的,会返回python的所有进程。 而我只想判断一下,有没有xxx进...
如果一般C写的话
pidof xxx(进程名)
就会返回进程的pid了,也就知道是否存在此进程了,
但是,如果是python的
pidof python xxx
这样,和pidof python
是一样的,会返回python的所有进程。
而我只想判断一下,有没有xxx进程。要如何处理?
不知道我有没有描述清楚,还希望会的朋友给个答案,谢谢了。
pidof xxx(进程名)
就会返回进程的pid了,也就知道是否存在此进程了,
但是,如果是python的
pidof python xxx
这样,和pidof python
是一样的,会返回python的所有进程。
而我只想判断一下,有没有xxx进程。要如何处理?
不知道我有没有描述清楚,还希望会的朋友给个答案,谢谢了。
|
ps -ef|grep xxx
能得到你所要的结果不?
能得到你所要的结果不?
|
友情up
|
ps -ef|grep xxx 至少会给出两个结果:进程xxx 和grep本身. 如果不想看这个grep本身,后面再加上|egrep
|
一种方法:
ps -ef | grep “xxx” | grep -v grep | awk '{ print $2 }'
ps -ef : 显示出当前所有进程
grep "split" : 找出显示的内容中含有'xxx'的行
grep -v grep: 不显示grep进程自己
awk '{print $2}' : 输出结果的第二列(进程号)
还有个比较复杂点的(用sed,本意是找到一个进程,并kill之),可以参考:
killproc() {
pid=`/bin/ps -e | /bin/sed -n -e '// s/^ *([0-9][0-9]*).*/1/p'`
[ "$pid" != "" ] && kill $pid
}
|
你贴一个grep的结果出来看看吧