我想要一个 php 脚本在 apache 服务器启动时执行并且一直运行直到 apache 服务器停止。
如何将 php 脚本绑定到 apache 启动脚本,以便 apache 服务器启动时立即执行该脚本。
答案1
我看不到直接绑定到 Apache 启动脚本的方法......
我将尝试修改 Apache 启动脚本本身。这将需要一点脚本工作,但应该很容易实现。
编辑/etc/init.d/apache2
找到case
下面这样的部分,然后从这里启动/停止您的 php 脚本。
case $1 in
start)
start_myscript
...
...
stop)
stop_myscript
...
...
restart)
stop_myscript
...
start_myscript
...
...
...
esac
# Little functions for my script. Has to be placed before the CASE block
function start_myscript {
nohup /path/to/php /path/to/script.php & # will run in background
}
function stop_myscript() {
kill -9 $(pgrep -f "script.php")
}
然后script.php
你必须实现一个无限循环来让它运行直到 Apache 停止。就像这样:
<?php
while(1) {
Do stuff;
sleep(10);
}
?>