当前位置:  开发笔记 > 后端 > 正文

确定ruby脚本是否已在运行

如何解决《确定ruby脚本是否已在运行》经验,为你挑选了1个好方法。

是否有一种简单的方法可以判断ruby脚本是否已经在运行,然后对其进行适当处理?例如:我有一个名为really_long_script.rb的脚本.我每隔5分钟就跑一次.当它运行时,我想查看上一次运行是否仍在运行,然后停止执行第二个脚本.有任何想法吗?



1> Philip Reyno..:

ps是一种非常糟糕的方式,可能会对比赛条件开放.

传统的Unix/Linux方式是将PID写入文件(通常在/ var/run中)并检查该文件是否在启动时存在.

例如,pidfile位于/var/run/myscript.pid,然后在运行程序之前检查是否存在.有一些技巧可以避免使用O_EXCL(排除锁定)来打开文件和符号链接的竞争条件.

不太可能,您应该尝试编码以通过在文件系统上使用原子操作来避免竞争条件.

为了节省重新发明轮子,您可能需要查看http://rubyforge.org/projects/pidify/

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有