script de inicialização do systemd para o apache2: como passar env vars?

1

O seguinte script de inicialização para 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

não funciona porque o executável não seleciona as variáveis env no EnvironmentFile .

Isso é o que eu li em /var/log/daemon.log no início do serviço:

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 é definido em / etc / apache2 / envvars, que é um material debian de estoque:

# 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

Eu tenho mais alguns avisos sobre outras variáveis de ambiente, então preciso de systemd para ler os arquivos env. Realmente.

    
por 473183469 23.11.2015 / 10:14

1 resposta

3

Os envios postados não estão no formato esperado por systemctl:

KEY=VALUE

é mais como um script bash.

Tente corrigir o formato.

    
por 23.11.2015 / 12:14