我已经开发了一个应该连续和顺序执行的脚本。现在在为这个脚本创建一个 cron 作业时,它会一直异步执行。
1)我在脚本中保留了一个while循环并考虑执行一次这个脚本所以我使用@reboot执行一次脚本但是如果apache崩溃那么这个脚本将不会自己开始执行??
2)使用 * * * * * cron 它执行此脚本,但会创建多线程,并且所有 cron 最终都会在服务器上重叠。
即使apache服务器重新启动,我也没有想法如何连续和顺序地执行服务器脚本。
您要求:
一个应该连续和顺序执行的脚本
这就是守护进程的定义。您可以使用upstart轻松地使用您的 php 代码创建守护程序。
在这里你可以找到一篇很好的文章来解释如何用 upstart 和 node.js 创建一个守护进程(但是很容易适应一个 php 脚本): http: //kvz.io/blog/2009/12/15/run-nodejs -as-a-service-on-ubuntu-karmic/
有一些想法可以处理检查脚本是否在这个问题中运行,并且您可以每隔几分钟运行一次 cron 以确保其运行并在没有运行时启动它。
cron 用于定时重复作业(最小间隔:1 分钟)。它适用于最终退出并需要从头开始重新启动的脚本。听起来您的脚本本质上是在尝试成为一个守护进程 - 启动一次,然后永久运行。
而不是 cron 重复启动脚本的新副本,只需通过 init 脚本启动您的脚本一次,例如 /etc/rc.local