【发布时间】:2013-04-10 19:30:05
【问题描述】:
我想知道编写一个无限期运行 PHP 脚本的守护程序的替代方法是什么。换句话说:执行 PHP 脚本 ---> 进程 ---> 完成 ---> 重复。
这可以用 Bash 编写吗?还是C?是否有一个我可以安装的 Linux 工具可以无限期地为我运行类似的东西?通常使用哪些方法来处理此任务?
更新:我正在使用 centos
【问题讨论】:
标签: linux
我想知道编写一个无限期运行 PHP 脚本的守护程序的替代方法是什么。换句话说:执行 PHP 脚本 ---> 进程 ---> 完成 ---> 重复。
这可以用 Bash 编写吗?还是C?是否有一个我可以安装的 Linux 工具可以无限期地为我运行类似的东西?通常使用哪些方法来处理此任务?
更新:我正在使用 centos
【问题讨论】:
标签: linux
这是一个常见的问题,人们已经编写了几个实用程序来解决这个问题(通常它们被称为看门狗)。
您可以比较可用选项并检查您更喜欢的选项的来源。其中一些是:
你可以使用 cron 定期运行任务,但是很难防止并发(很难做好,处理锁、过时锁等)。
【讨论】:
如果它能够满足您的功能和性能要求,那么 qiuiickest 就是您所知道的。 Bash - 通常最简单,perl - 强大,c - 只有当你真的知道你在做什么时。如果你最了解它,你可以使用 php 本身。
您可以创建一个 cron 作业来执行您的 php 脚本。或者使用外部程序守护您的程序。用perl创建守护进程很容易,如果php也可以fork作为守护进程也就不足为奇了。
bash 解决方案:
cd /
while :; do php /path/myprog.php >> /var/log/myphplog.log; done </dev/null >/dev/null 2>/dev/null &
disown
您可以将此代码放在 rc.local 中或创建一个新的初始化脚本。日志轮换也不错。
【讨论】: