将 php 脚本与 apache 启动脚本绑定

将 php 脚本与 apache 启动脚本绑定

我想要一个 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);
    }
?>

相关内容