httpd 服务启动前的源脚本

httpd 服务启动前的源脚本

回到过去的美好时光,我能够用一些在每次 apache 启动时执行的额外代码行来修补 /etc/rc.d/init.d/httpd:

start() {
  echo "Setting variables..."
  source /path/to/my/script.sh
  echo -n $"Starting $prog: "
  check13 || exit 1
  LANG=$HTTPD_LANG daemon $httpd $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch ${lockfile}
  return $RETVAL
}

源/path/to/my/script.sh负责设置 PHP 扩展运行所需的一些环境变量。

无论如何,在 systemd 之后,systemctl 占了上风,我无法将系统配置为在 apache 启动之前自动加载 script.sh 变量。手动执行时:

/usr/sbin/httpd -k stop
source /path/to/my/script.sh
/usr/sbin/httpd -k start

一切正常。

在 Fedora 4.0 和类似系统上使用 systemd 服务管理器实现此目的的正确方法是什么?

答案1

您必须使用单元配置文件中的 ExecStartPre 选项。请阅读http://www.freedesktop.org/software/systemd/man/systemd.service.html

相关内容