Package: systemd Version: 241-7~deb10u4 Severity: normal Dear Maintainer,
tests on systemd environment variables under certain conditions got me puzzled, and I guess this would be considered a bug. A systemd service will execute all ExecStartPost statements, even if the corresponding service configured with ExecStart has bailed out with error code. One can test it with a [Service] section like that: Type=exec User=debian Group=debian # Test ExecStartPre=/bin/true ExecStart=/bin/false ExecStartPost=/bin/echo "StartPost Beginn" ExecStartPost=/bin/sleep 5 ExecStartPost=/bin/printenv ExecStartPost=/bin/true ExecStop=/bin/echo "Stop Beginn" ExecStop=/bin/printenv ExecStop=/bin/true ExecStopPost=/bin/echo "StopPost Beginn" ExecStopPost=/bin/printenv This will result in a situation captured in journal: Jul 13 16:57:29 primus systemd[1]: test.service: Main process exited, code=exite -- Subject: Unit process exited -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- An ExecStart= process belonging to unit test.service has exited. -- -- The process' exit code is 'exited' and its exit status is 1. Jul 13 16:57:29 primus echo[24742]: StartPost Beginn Jul 13 16:57:34 primus printenv[24744]: LANG=en_US.UTF-8 Jul 13 16:57:34 primus printenv[24744]: PATH=/usr/local/sbin:/usr/local/bin:/usr Jul 13 16:57:34 primus printenv[24744]: HOME=/home/debian Jul 13 16:57:34 primus printenv[24744]: LOGNAME=debian Jul 13 16:57:34 primus printenv[24744]: USER=debian Jul 13 16:57:34 primus printenv[24744]: SHELL=/bin/bash Jul 13 16:57:34 primus printenv[24744]: INVOCATION_ID=e9c25c8c677743b19cf95abe7c Jul 13 16:57:34 primus printenv[24744]: JOURNAL_STREAM=9:2458318 Jul 13 16:57:34 primus echo[24746]: StopPost Beginn As is clearly visible, Systemd knows the main process bailed out prior to Systemd beginning to execute even the first ExecStartPost statement. Although I might miss out some really important thoughts on why it was decided as such, I find it a little confusing, because all ExecStop statements are skipped as can be read in the documentation. -- Package-specific info: -- System Information: Debian Release: 10.4 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.19.0-9-amd64 (SMP w/8 CPU cores) Kernel taint flags: TAINT_WARN Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages systemd depends on: ii adduser 3.118 ii libacl1 2.2.53-4 ii libapparmor1 2.13.2-10 ii libaudit1 1:2.8.4-3 ii libblkid1 2.33.1-0.1 ii libc6 2.28-10 ii libcap2 1:2.25-2 ii libcryptsetup12 2:2.1.0-5+deb10u2 ii libgcrypt20 1.8.4-5 ii libgnutls30 3.6.7-4+deb10u4 ii libgpg-error0 1.35-1 ii libidn11 1.33-2.2 ii libip4tc0 1.8.2-4 ii libkmod2 26-1 ii liblz4-1 1.8.3-1 ii liblzma5 5.2.4-1 ii libmount1 2.33.1-0.1 ii libpam0g 1.3.1-5 ii libseccomp2 2.3.3-4 ii libselinux1 2.8-1+b1 ii libsystemd0 241-7~deb10u4 ii mount 2.33.1-0.1 ii util-linux 2.33.1-0.1 Versions of packages systemd recommends: ii dbus 1.12.16-1 ii libpam-systemd 241-7~deb10u4 Versions of packages systemd suggests: ii policykit-1 0.105-25 pn systemd-container <none> Versions of packages systemd is related to: pn dracut <none> ii initramfs-tools 0.133+deb10u1 ii udev 241-7~deb10u4 -- Configuration Files: /etc/systemd/timesyncd.conf changed [not included] -- no debconf information