我想在 Apache 重新启动时运行一些特定于应用程序的清理代码。首先,我按照以下步骤操作https://stackoverflow.com/questions/2992938/is-it-possible-to-launch-a-php-script-at-apache-startup。我在本地 Ubuntu 16.04.1 LTS 虚拟机上更改了 /etc/init.d/apache2(带有 Apache/2.4.18),在 start 下添加了一些代码,它运行得很好。但是,当我尝试在 AWS 上托管的带有 Apache/2.4.23 的 Ubuntu 16.04.2 LTS 上执行完全相同的步骤时,几乎就像我的更改被忽略了一样。我输入了许多“echo”语句来了解发生了什么,但我没有看到任何代码正在运行的迹象。
这是我在 /etc/init.d/apache2 中所做的更改
start)
log_daemon_msg "Starting $DESC" "$NAME"
do_start
RET_STATUS=$?
case "$RET_STATUS" in
0|1)
log_success_msg
[ "$VERBOSE" != no ] && [ $RET_STATUS = 1 ] && log_warning_msg "Server was already running"
;;
2)
log_failure_msg
print_error_msg
exit 1
;;
esac
# Restart the reports that would have died when the server is restarted
echo Restarting reports
echo `date +%Y-%m-%d:%H:%M:%S` Starting report:restart_running_reports >> /var/www/application/storage/logs/restart_running_reports.log
php /var/www/application/artisan report:restart_running_reports
;;
- 是否有某种方法可以记录 /etc/init.d/apache2 中发生的情况,以查看它是否能够进入该 switch 语句?log_daemon_msg 最终在哪里?
- 在 Apache 启动/重新启动时运行脚本还有其他方法吗?