已知进程名(python写的守护进程) 查该进程是否存在如何处理?

qizhi0119 2008-11-29 04:03:16
如果一般C写的话
pidof xxx(进程名)
就会返回进程的pid了,也就知道是否存在此进程了,
但是,如果是python的
pidof python xxx
这样,和pidof python
是一样的,会返回python的所有进程。
而我只想判断一下,有没有xxx进程。要如何处理?
不知道我有没有描述清楚,还希望会的朋友给个答案,谢谢了。
...全文
385 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
linaxing 2008-12-01
  • 打赏
  • 举报
回复

你贴一个grep的结果出来看看吧
qizhi0119 2008-12-01
  • 打赏
  • 举报
回复
ps -ef这个,我原来用的是
ps -aef| grep xxx
的,就像大家说的,有grep这个,是其一,如果有人用vi的话,不止有grep 还会有个vi
或是更多,现在我都发现三种情况了,也许会有更多,所以,没办法采用这种,有没有更好一点的??谢谢了。
joyself 2008-11-30
  • 打赏
  • 举报
回复

一种方法:
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 '/\<'$1'\>/ s/^ *\([0-9][0-9]*\).*/\1/p'`
[ "$pid" != "" ] && kill $pid
}


audrey88 2008-11-30
  • 打赏
  • 举报
回复
ps -ef|grep xxx 至少会给出两个结果:进程xxx 和grep本身. 如果不想看这个grep本身,后面再加上|egrep

qap22 2008-11-29
  • 打赏
  • 举报
回复
友情up
linaxing 2008-11-29
  • 打赏
  • 举报
回复
ps -ef|grep xxx
能得到你所要的结果不?

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧