我们在slicehost有一个CentOS 5 VPS。我有几个PHP脚本可以操作电子邮件和其他东西。
我需要一种方法来在机器重启/启动时自动启动这些 php 脚本并让它们在后台运行。如果脚本停止,则能够自动重新启动,这是一个额外的好处。
谢谢!
答案1
您可以添加几个启动脚本:下面是我将使用的基本内容
#!/bin/bash
# chkconfig 2345 35 80
# Description: one line description
# I'd also insert a longer description of the
# scripts here.
# set any environment variables that might be needed here, too.
su - <target_user> /path/to/php /mypath/startupscript &
为了保持最低权限,您需要将其替换为希望以该脚本运行的用户。如果您希望以 root 身份运行,则您的 php 解释器需要设置为 setUID 并归 root 所有,但这样您就可以完全删除“su - ”。
答案2
您可以尝试将脚本添加到 /etc/rc.local,以便在您重新启动时启动它们。
php /mypath/startupscript &
如果您需要它们自动重启,那么您可能需要写出一个 pid 文件或类似的东西,并使用 cronjob 监视它们。不确定使用 php 进行长期运行的系统管理进程是否是个好主意。
答案3
大多数 *nix 允许@重启作为 crontab 中的时间/日期,在服务器重启时执行。