我有一个包含大量动态别名的复杂 Web 应用程序。我创建了一个 shellscript,用于使用这些别名更新 .conf 文件。是否可以从 Apache conf 中调用此 shellscript?因此,如下所示:
RunScript /etc/myapp/updateconf.sh
Include /etc/myapp/*.conf
或者,有没有一个好的方法可以将此脚本作为钩子添加到 /etc/init.d/apache2 或 /etc/init.d/httpd 脚本中?我正在寻找一种适用于 CentOS 和 Ubuntu 的解决方案。如果我完全以错误的方式处理这个问题,也欢迎任何其他建议。
答案1
当然,您可以在启动 Apache 之前在 init 脚本中调用它,如下所示:
start() {
echo -n $"Starting $prog: "
check13 || exit 1
. /etc/myapp/updateconf.sh
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
答案2
如果需要定期更新配置,我会尝试通过 cron 作业执行此操作,并graceful
在重新启动 apache 时使用该选项。如果您想每小时/每天/每周/每月执行此操作,那么您可以将脚本放在相关的 /etc/cron.* 目录中,它将为您运行。
#!/bin/bash
/etc/myapp/updateconf.sh && /sbin/service httpd graceful
# change to /usr/sbin/service apache2 graceful
# for ubuntu
会工作。
如果您需要在系统启动时执行此操作,请编辑/etc/crontab
并添加@reboot
条目
@reboot root /etc/myapp/updateconf.sh && /sbin/service httpd graceful
如果 apache 尚未启动,则不会通过优雅选项启动它,但您的配置文件将更新,以便 apache 启动。如果 apache 正在运行,它将重新启动。