免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: spiritX
打印 上一主题 下一主题

Unix下有什么方法实现防止程序多重执行? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-02-05 18:44 |只看该作者
原帖由 fera 于 2009-2-5 18:12 发表

不用想了,俺的最简单实用


unlink一个自己打开着的文件,看着有点悬。。
保不准哪天系统升级后你就发现程序有bug了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
22 [报告]
发表于 2009-02-05 18:54 |只看该作者
干吗不用文件锁? 你这不自找罪受吗! 我用文件锁保证程序运行一个实现从来没出过错,就算出错了,删掉那个文件就行了。实现简便,修正方便。

论坛徽章:
0
23 [报告]
发表于 2009-02-05 19:00 |只看该作者
原帖由 ddvv 于 2009-2-5 14:06 发表
用文件记录我觉得不妥,容易出问题。

进程结束的时候要删除对应的记录,如果进程不是正常结束的话,很可能就没有删除记录,导致下次无法以相同的参数执行,除非手动删除。


这些正是那些独立于文件树名字空间的IPC的缺点。 文件纪录锁就算在程序里没有显示删除当进程退出时(不管正常不正常)内核都会料理。

Unix最大的优点:一切皆文件。不知道为什么要反对。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
24 [报告]
发表于 2009-02-05 19:26 |只看该作者
原帖由 太平绅士 于 2009-2-5 18:44 发表


unlink一个自己打开着的文件,看着有点悬。。

不悬。

论坛徽章:
0
25 [报告]
发表于 2009-02-05 19:58 |只看该作者
原帖由 MMMIX 于 2009-2-5 19:26 发表

不悬。


有什么可靠规定?

论坛徽章:
0
26 [报告]
发表于 2009-02-05 20:43 |只看该作者
用共享内存搞搞

论坛徽章:
0
27 [报告]
发表于 2009-02-06 04:54 |只看该作者
给程序文件命名成一个约定好的“特定”的名字,如 'file_need_run_once'。

这样程序在进入main后第一件事情就用system执行ps,来看有没有file_need_run_once名字的进程在运行,发现有程序就直接exit。

论坛徽章:
0
28 [报告]
发表于 2009-02-06 05:44 |只看该作者
原帖由 太平绅士 于 2009-2-5 03:58 发表


有什么可靠规定?

简单的说,事实与标准都是如此。繁琐的说,这点可靠性已经可靠了几十年,现在与可遇见的将来还有很多应用靠这个可靠性活下去。所以,可靠。

论坛徽章:
0
29 [报告]
发表于 2009-02-06 06:42 |只看该作者

回复 #16 fera 的帖子

是不是dhclient用的就是这个方法亚?

论坛徽章:
0
30 [报告]
发表于 2009-02-06 09:19 |只看该作者
原帖由 mingyanguo 于 2009-2-6 05:44 发表

简单的说,事实与标准都是如此。繁琐的说,这点可靠性已经可靠了几十年,现在与可遇见的将来还有很多应用靠这个可靠性活下去。所以,可靠。

nod
一点都不悬。内核实现就是这样的,这样也符合unlink的语义。建议有疑问的去看看UNIX内核中关于unlink的描述。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP