apache2的systemd启动脚本:如何传递envvariables?

下面的systemd启动脚本(Debian GNU / Linux Jessie)

[Unit] Description=Apache httpd web server After=network.target [Service] PIDFile=/var/run/apache2/apache2.pid EnvironmentFile=/etc/default/apache2 EnvironmentFile=/etc/apache2/envvars ExecStart=/usr/sbin/apache2 -d /etc/apache2 -k start [Install] WantedBy=multi-user.target 

不起作用,因为可执行文件没有选取EnvironmentFile的envvariables。

这是我在/var/log/daemon.log服务启动时读到的:

 Nov 23 10:05:30 kdc apache2[3111]: AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf: Nov 23 10:05:30 kdc apache2[3111]: Invalid Mutex directory in argument file:${APACHE_LOCK_DIR} 

APACHE_LOCK_DIR是在/ etc / apache2 / envvars中定义的,它是股票debian的东西:

 # envvars - default environment variables for apache2ctl # this won't be correct after changing uid unset HOME # for supporting multiple apache2 instances if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" else SUFFIX= fi # Since there is no sane way to get the parsed apache2 config in scripts, some # settings are defined via environment variables and then used in apache2ctl, # /etc/init.d/apache2, /etc/logrotate.d/apache2, etc. export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data # temporary state file location. This might be changed to /run in Wheezy+1 export APACHE_PID_FILE=/var/run/apache2/apache2$SUFFIX.pid export APACHE_RUN_DIR=/var/run/apache2$SUFFIX export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX # Only /var/log/apache2 is handled by /etc/logrotate.d/apache2. export APACHE_LOG_DIR=/var/log/apache2$SUFFIX ## The locale used by some modules like mod_dav export LANG=C ## Uncomment the following line to use the system default locale instead: #. /etc/default/locale export LANG ## The command to get the status for 'apache2ctl status'. ## Some packages providing 'www-browser' need '--dump' instead of '-dump'. #export APACHE_LYNX='www-browser -dump' ## If you need a higher file descriptor limit, uncomment and adjust the ## following line (default is 8192): #APACHE_ULIMIT_MAX_FILES='ulimit -n 65536' ## If you would like to pass arguments to the web server, add them below ## to the APACHE_ARGUMENTS environment. #export APACHE_ARGUMENTS='' ## Enable the debug mode for maintainer scripts. ## This will produce a verbose output on package installations of web server modules and web application ## installations which interact with Apache #export APACHE2_MAINTSCRIPT_DEBUG=1 

我有更多关于其他环境variables的警告,所以我需要systemd来读取env文件。 真。

所发布的envvars不符合systemctl预期的格式:

 KEY=VALUE 

它更像是一个bash脚本。

尝试修复格式。