我有一个复杂的Web应用程序,其中包含大量的dynamic别名。 我创build了一个用这些别名更新.conf文件的shell脚本。 是否有可能从Apacheconfiguration文件中调用这个shellscript? 所以像这样:
RunScript /etc/myapp/updateconf.sh Include /etc/myapp/*.conf
或者,有没有一种好方法来将此脚本作为钩子添加到/etc/init.d/apache2或/etc/init.d/httpd脚本中? 我正在寻找一个适用于CentOS和Ubuntu的解决scheme。 如果我完全接近这个错误的话,还有其他build议也是可以的。
当然,你可以在初始化脚本启动Apache之前调用它,如下所示:
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 }
如果configuration需要定期更新,我会试图通过一个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还没有启动,它将不会被graceful选项启动,但是你的configuration文件将被更新,以便Apache启动。 如果Apache正在运行,它将被重新启动。