LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1784|回复: 4

如何在程序中判断另外一个进程是否正在运行?

[复制链接]
发表于 2009-9-8 14:47:23 | 显示全部楼层 |阅读模式
我现在正在做一个特定环境下的浏览器,在某些页面需要播放一些视频内容,
当用户点击一个视频链接的时候,我启动一个播放器对视频进行播放,但是现在遇到一个问题
,当用户对一个视频点击多次的时候,播放器也会启动多次,造成系统反应速度极慢。
我现在希望做的是,当用户不管点击多少次视频内容,始终只使用一个播放器进行播放,这里就需要判断该进程是否正在运行,
起初我写了一个shell进行判断,但是有局限性,因为设备的不同,shell的命令也不同,不易维护,希望有经验的开发人员给予帮助!

感谢!
发表于 2009-9-9 12:15:06 | 显示全部楼层
自相矛盾吧?既然是“特定环境下的浏览器”,那么你的环境当然是特定的,怎么可能“因为设备的不同,shell的命令不同”呢?

pgrep 命令可以搜索进程,这个我认为比较好用。而且即使是 busybox 的版本也带这个命令的。
回复 支持 反对

使用道具 举报

发表于 2009-9-12 13:28:47 | 显示全部楼层
可以用文件锁,也可以用进程间的互斥量,还可以用socket listen占用一个端口,总之你查进程间通讯IPC相关内容,方法一大堆。
不推荐进程名搜索这类笨办法,但你一定想这么做,访问/proc文件系统可以枚举进程。
回复 支持 反对

使用道具 举报

发表于 2009-9-15 08:38:15 | 显示全部楼层
我看很多服务都用/var/run/*.pid文件来判断软件是否打开,楼主可以参考这个方法
回复 支持 反对

使用道具 举报

发表于 2009-9-25 00:58:50 | 显示全部楼层
绝对同意楼上的    路过了                              
   
     
      
   
   
  
     
      
------------------------------------------------------------
我经济破产,人格冇破产,因为中域互联一直系甘支持我。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表