| Twitter | Del.icio.us | Comments (9) | | Edit

Comments Powered by Disqus

留言评论 | Comments (9)

我们现在用的办法是创建一个socket,这样第二个起来的时候就会因为无法bind端口出错。直接退出了。

打开一个文件并Exclusive锁定它,这是比较好的.

文件里写pid也成。

用PID File应该也是一个好选择..

正好有这种需求

第一个方法也就是lock文件,基本上不会失败,
第二个方法按理也不会失败,但是现实中也会失败
这两个方法以前都用过,且都失败过,
第一种方法后来发现是因为lock的文件被rsync同步所造成,后来改过之后就没有失败过。
而第二种方法,是在用ps命令查看进程时可能会失败,我那个程序是每分钟都会启动一次的,这样下来一天大概会失败一次,另外ps命令出来的时间也可能会出错。

每分钟都启动? 太频繁了,或许你应该直接在程序里多做几个循环,然后重新调度执行时间

该程序本身是个死循环,因为是监视程序,cron每分钟都跑这个程序,是为了在死掉之后能立即重起该进程。

可以试试lockf这个命令