我想知道编写一个无限期运行PHP脚本的守护进程的替代方法。换句话说:执行PHP脚本--->过程--->完成--->重复。
这可以用Bash写吗?还是C?是否有可以安装的Linux工具可以无限期地为我运行这样的东西?通常使用哪些方法来处理此任务?
更新:我正在使用centos
答案 0 :(得分:1)
这是一个常见的问题,人们已经写了几个实用程序来做到这一点(通常它们被称为看门狗)。
您可以比较可用选项并检查您喜欢的选项的来源。其中一些是:
您可以使用cron定期运行任务,但很难防止并发(很难做到很好,处理锁,陈旧锁等)。
答案 1 :(得分:0)
你可以创建一个cron作业来执行你的php脚本。或者使用外部程序对程序进行daemonmon化。使用perl很容易创建一个守护进程,如果php也可以作为守护进程进行分叉,也不会感到惊讶。
bash解决方案:
cd /
while :; do php /path/myprog.php >> /var/log/myphplog.log; done </dev/null >/dev/null 2>/dev/null &
disown
您可以将此代码放在rc.local中或创建新的init脚本。日志轮换也很好。