免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3272 | 回复: 18
打印 上一主题 下一主题

Unix环境下,如何防止一个程序被启动两次 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-24 23:06 |只看该作者 |倒序浏览
有一个程序,运行后只有kill -9 pid才能退出。
如何实现,用户运行程序的时候,
如果该程序已经运行了
则退出程序,并提示用户已经启动过了
否则,启动该程序。


即:如何防止一个程序,同时被运行两次?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-06-24 23:22 |只看该作者

Unix环境下,如何防止一个程序被启动两次

《unix网络编程:卷二》,
具体哪一章忘了,
给出了一个完整的程序。

论坛徽章:
0
3 [报告]
发表于 2004-06-25 08:15 |只看该作者

Unix环境下,如何防止一个程序被启动两次

中文版 9.7 节。

论坛徽章:
0
4 [报告]
发表于 2004-06-25 12:29 |只看该作者

Unix环境下,如何防止一个程序被启动两次

可以通过文件锁来实现
apue第12章有

你也可以通过代码里面调用shell来实现

论坛徽章:
0
5 [报告]
发表于 2004-06-25 13:11 |只看该作者

Unix环境下,如何防止一个程序被启动两次

semaphore

论坛徽章:
0
6 [报告]
发表于 2004-06-25 20:59 |只看该作者

Unix环境下,如何防止一个程序被启动两次

《unix网络编程:卷二》我没有这本书
apue第12章有 apue是什么书?
semaphore 大概知道指的是信号量,但不知道怎么用

???

论坛徽章:
0
7 [报告]
发表于 2004-06-25 21:43 |只看该作者

Unix环境下,如何防止一个程序被启动两次

APUE is "Advanced Programming in the UNIX Environment"


<<UNIX 环境高级编程>;>;

论坛徽章:
0
8 [报告]
发表于 2004-06-25 22:11 |只看该作者

Unix环境下,如何防止一个程序被启动两次

/proc 下的各个子目录下又分别有psinfo
这些文件里保存者所有正在运行的process的信息。
若在这些信息里发现进程名相同而进程id的,则说明已经该程序已经运行了。

论坛徽章:
0
9 [报告]
发表于 2004-06-29 16:09 |只看该作者

Unix环境下,如何防止一个程序被启动两次

自己用文件做一个标记。
别忘了,在系统启动的时候,先清除这个标记,然后再运行那个程序。
否则,程序可能就起不了了。

论坛徽章:
0
10 [报告]
发表于 2004-07-02 14:36 |只看该作者

Unix环境下,如何防止一个程序被启动两次

我的实现方法是在程序启动的时候通过ps检测当前是否有同名进程运行。如无,则继续执行;如有,则首先提示当前有另一进程运行,并输出进程号,然后退出执行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP