2016-11-10 71 views

回答

0

虽然不是理想的,但它绝不是一个“钩子”......您可以编写脚本来检查apache程序的状态并切换“开关”变量。

#!/bin/bash 

s=0; 
while true; do 
    /etc/init.d/apache2 status > /dev/null; 

    if [ $? -eq "0" ] && [ ! "${s}" -eq $? ]; then 
     # Do whatever you want to do when apache first starts running. 
    fi 

    s=$? 
done 

所以我们有一个s女巫。我们在apache2上检查status的返回码。 0出现在运行时,而不是0(3),如果它没有运行。

$?如果您不知道,则会返回上次运行命令的状态码。

if [ $? -eq "0" ] && [ ! "${s}" -eq $? ];如果Apache正在运行,但它没有运行,我们最后一次检查,它刚刚开始!让我们做一些工作。

s=$?该行将开关设置为最后一个状态码...意味着下一个循环$s实际上是eq $?,因此循环将不会运行。

我强烈建议你添加一个sleep 1或任何可以接受的延迟之间的Apache启动和你的程序运行。

相关问题