设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
在LINUX中,如何设计一程序,使其只能运行一次 ...
1
2
3
/ 3 页
下一页
返回列表
查看:
2931
|
回复:
20
在LINUX中,如何设计一程序,使其只能运行一次
[复制链接]
jerboa
jerboa
当前离线
积分
345
IP卡
狗仔卡
发表于 2002-8-31 11:08:52
|
显示全部楼层
|
阅读模式
在LINUX中,如何设计一程序,使其只能运行一次。即使用户修改了此文件的名称,该程序也能知道运行一次,第二次运行后自动退出?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
jerboa
jerboa
当前离线
积分
345
IP卡
狗仔卡
楼主
|
发表于 2002-8-31 18:32:39
|
显示全部楼层
我曾经在一个论坛上看到过这样的讨论,时间长了忘了,现在应用需要:软件只能一个在内存里运行,如果运行的程序不退出,再次运行它的话,它发现程序已经运行了,就自动退出。
回复
支持
反对
使用道具
举报
显身卡
winix
winix
当前离线
积分
391
IP卡
狗仔卡
发表于 2002-9-1 02:10:13
|
显示全部楼层
可以参照daemon的方式,运行后将pid放在/var/run目录下。
回复
支持
反对
使用道具
举报
显身卡
jerboa
jerboa
当前离线
积分
345
IP卡
狗仔卡
楼主
|
发表于 2002-9-1 09:54:13
|
显示全部楼层
实际应用是这样的:现做出一个业务主管的管理程序,业务主管可能多个,而业务主管使用软件,只是对业务系统监控与管理,用的时候并不多,但一天至少运行几次(业务需要),此程序主管运行检查监控完后,就退出了,不需要程序运行。但此程序在运行时,不允许其他主管进来,不然系统要出现问题。显然用daemon的办法不行,它一般是一直在内在中运行的。还有没有其它方法?我正在找解决的办法。
回复
支持
反对
使用道具
举报
显身卡
winix
winix
当前离线
积分
391
IP卡
狗仔卡
发表于 2002-9-1 10:05:33
|
显示全部楼层
我的意思是第一次运行时,将进程号写进/var/run/下的文件(文件名一般为进程名称)中,以后运行时如果存在此文件就提示并退出。正常退出要delete。
此外还可以利用IPC中的信号灯,原理类似。
回复
支持
反对
使用道具
举报
显身卡
jerboa
jerboa
当前离线
积分
345
IP卡
狗仔卡
楼主
|
发表于 2002-9-1 10:29:44
|
显示全部楼层
信号灯可以采用,因为此程序目前运行不稳定,中途崩溃情况有。如果用文件的话,一旦程序崩溃,则下次将不能进入系统,这种情况即使程序稳定了也有可能出现,因此不能采用文件的方法来控制,因为没有必要要求业务主管在运行不了时去/var/run下手工删除文件。
回复
支持
反对
使用道具
举报
显身卡
winix
winix
当前离线
积分
391
IP卡
狗仔卡
发表于 2002-9-1 10:37:14
|
显示全部楼层
可以再加一个判断:如果文件存在,则取出进程号,判断是否在运行状态,如果没有进程,说明上次异常退出,删除,然后继续...
有些牵强,但我发现linux下的esound是采用这样的机制,再复杂一点就要用到文件锁了。
回复
支持
反对
使用道具
举报
显身卡
jerboa
jerboa
当前离线
积分
345
IP卡
狗仔卡
楼主
|
发表于 2002-9-1 10:45:31
|
显示全部楼层
可行。不知道还有没有其它更巧妙的办法?
回复
支持
反对
使用道具
举报
显身卡
winix
winix
当前离线
积分
391
IP卡
狗仔卡
发表于 2002-9-1 10:57:18
|
显示全部楼层
不知道了
windows下也是采用类似的机制(信号灯或临界区),好象也没有更巧妙的办法!
回复
支持
反对
使用道具
举报
显身卡
khj99
khj99
当前离线
积分
113
IP卡
狗仔卡
发表于 2002-9-4 17:08:18
|
显示全部楼层
某些著名的软件(apache,mysql)都是采用,运行后把自已的pid号写入到一个文件里面,比如httpd.pid。第二次运行发现存在这个文件,就退出。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
3
/ 3 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
开源软件专题讨论
Gentoo Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表