当前位置:  技术问答>linux和unix

c语言编程问题:如果防止linux下程序的重复运行?

    来源: 互联网  发布时间:2015-04-12

    本文导语:  如题目, 如何防止自己的程序被重复运行?谢谢 | 那就这么办,当第一个进程创建时,这个进程可以创建一个文件,然后给这个文件加上建议性锁,然后往这个文件里写上这个进程的pid信息...

如题目, 如何防止自己的程序被重复运行?谢谢

|
那就这么办,当第一个进程创建时,这个进程可以创建一个文件,然后给这个文件加上建议性锁,然后往这个文件里写上这个进程的pid信息,这样也可以用脚本命令来结束这个进程。当另一个进程创建时,如果这个文件存在,但是没有加锁,那么就是机器非正常重新启动,如果加了锁,就是有另外一个进程存在,退出即可。

|
编一SHELL程序来判断,程序名定为:TestDaemonExist: 
    
     DaemonNum=`ps -e|grep $1|wc -l` 
     if [ $DaemonNum -ge 2 ] 
     then 
      exit(1) #如daemon进程已起动,则返回1 
     else 
      exit(0) #如daemon进程未起动,则返回0 
     fi 
     
     在程序前部,增加一个判断 
     if (system("TestDaemonExist Daemon-name")!=0) 
     { 
      printf("daemon进程已起动!!!"); 
      exit(0); 
     };

|
不过这样有些小问题,就是可能是其他程序的进程。如果为了保险,可以取该进程的信息,看看是否是本程序的一个进程。
其实一般的程序在检测到该pid文件后做的事情只是提示用户,然后退出,由用户处理。

|
同意CoolQ的方法。这个方法是一般的daemon常用的方法,见《UNIX网络编程》第二卷的9.3节。用一个写入锁就可以了。

|
没关系。根据获得的pid文件中的pid,用kill(pid, 0)看看其状态。如果死了,可以把pid文件干掉,生成新的,启动即可。

    
 
 

您可能感兴趣的文章:

  • 即时运行的编程语言 Circa
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 2013年7月和2013年8月编程语言排行榜
  • kliyx是使用C++语言编程的,还是用C语言编程的?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 动态编程语言 LIME编程语言
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • LINUX下 C语言编程中 DIR 是做什么用的~?
  • PHP编程语言介绍及安装测试方法
  • 新建 一 LINUX C语言编程交流群 大家若有兴趣就加入一起交流哈
  • 各位大侠,请推荐几本在UNIX环境下使用标准C语言编程的好书.谢谢啊!!!
  • unix/linux系统,支持那些语言编程??
  • 在unix 中怎么实现 c 语言编程
  • 初学Linux要看什么书?, 请问Linux下C语言编程怎么设置环境?
  • 请问在linux中,怎样用c语言编程来实现对计算机的日期和时间的修改啊?
  • 如何用C语言编程启动linux下的shell命令
  • 在Linux的Eclipse中用C语言编程,求助
  • 请问:linux 下 C语言编程 , 如何将 串口 由 全双工 变化为 半双工 通讯 方式?
  • 为什么要学linux环境下c语言编程
  • 问个c语言编程的初级问题
  • linux 下c 语言编程
  • linux下c语言编程问题 help !!!
  • C语言编程——操作系统中的文件管理!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3