Bug#827444: apache2: Incorrect SystemD generated service file
Package: apache2
Version: 2.4.10-10+deb8u4
Severity: important
Dear Maintainer,
On Debian systems running SystemD we've noticed that systemd-sysv-generator
generates an incorrect service file, which causes systemctl to report
incorrect service status.
This bugreport is identical to a similar report I've submitted for unbound.
For information please see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807132
Normal operation:
# systemctl status apache2
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: active (running) since Wed 2016-01-27 13:32:00 CET; 4 months 19 days ago
Process: 24838 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
CGroup: /system.slice/apache2.service
We now kill apache2, verify no processes are running, and ask systemd for a status:
# killall -9 /usr/sbin/apache2
# ps -aux | grep apache | grep -v root
# systemctl status apache2
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: active (exited) since Wed 2016-01-27 13:32:00 CET; 4 months 19 days ago
Process: 24838 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
It says "active (exited)". It is clearly not only exited, it is not active either.
Asking systemd to start the service has no effect:
# systemctl start apache2
# ps -aux | grep apache | grep -v root
Only stopping and starting and/or 'restart' works to resolve the issue.
Implemeting this override in SystemD seems to resolve the issue:
Create file:
/etc/systemd/system/apache2.service.d/sysv-generator-overrides.conf
with the following content:
[Service]
Type=forking
PIDFile=/var/run/apache2/apache2.pid
RemainAfterExit=no
Restart=on-failure
Then run systemctl daemon-reload
The issue is now resolved:
Normal operation:
# systemctl status apache2
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Drop-In: /etc/systemd/system/apache2.service.d
└─sysv-generator-overrides.conf
Active: active (running) since Thu 2016-06-16 09:56:28 CEST; 16min ago
We now kill apache2, verify no processes are running, and ask systemd for a status:
# killall -9 /usr/sbin/apache2
# ps -aux | grep apache | grep -v root
# systemctl status apache2
# systemctl status apache2
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Drop-In: /etc/systemd/system/apache2.service.d
└─sysv-generator-overrides.conf
Active: failed (Result: start-limit) since Thu 2016-06-16 10:13:13 CEST; 2s ago
I believe this bug is important, because the incorrect status report by systemctl causes monitoring tools
to beeing misled. e.g. tools like Puppet use systemctl to verify service status. A puppet manifest
to ensure Apache is running has no effect, because Puppet relies on systemd.
-- Package-specific info:
-- System Information:
Debian Release: 8.5
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16.0-4-amd64 (SMP w/12 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages apache2 depends on:
ii apache2-bin 2.4.10-10+deb8u4
ii apache2-data 2.4.10-10+deb8u4
ii apache2-utils 2.4.10-10+deb8u4
ii dpkg 1.17.27
ii lsb-base 4.1+Debian13+nmu1
ii mime-support 3.58
ii perl 5.20.2-3+deb8u5
ii procps 2:3.3.9-9
Versions of packages apache2 recommends:
ii ssl-cert 1.0.35
Versions of packages apache2 suggests:
pn apache2-doc <none>
pn apache2-suexec-pristine | apache2-suexec-custom <none>
pn www-browser <none>
Versions of packages apache2-bin depends on:
ii libapr1 1.5.1-3
ii libaprutil1 1.5.4-1
ii libaprutil1-dbd-sqlite3 1.5.4-1
ii libaprutil1-ldap 1.5.4-1
ii libc6 2.19-18+deb8u4
ii libldap-2.4-2 2.4.40+dfsg-1+deb8u2
ii liblua5.1-0 5.1.5-7.1
ii libpcre3 2:8.35-3.3+deb8u4
ii libssl1.0.0 1.0.1t-1+deb8u2
ii libxml2 2.9.1+dfsg1-5+deb8u2
ii perl 5.20.2-3+deb8u5
ii zlib1g 1:1.2.8.dfsg-2+b1
Versions of packages apache2-bin suggests:
pn apache2-doc <none>
pn apache2-suexec-pristine | apache2-suexec-custom <none>
pn www-browser <none>
Versions of packages apache2 is related to:
ii apache2 2.4.10-10+deb8u4
ii apache2-bin 2.4.10-10+deb8u4
-- Configuration Files:
/etc/apache2/apache2.conf changed [not included]
/etc/apache2/mods-available/mpm_event.conf changed [not included]
/etc/apache2/mods-available/ssl.conf changed [not included]
/etc/apache2/mods-available/status.conf changed [not included]
-- debconf-show failed
Reply to: