Rely on /proc/1/comm to identify running systemd
authorMichael Prokop <mika@grml.org>
Fri, 13 Jan 2017 12:36:20 +0000 (13:36 +0100)
committerMichael Prokop <mika@grml.org>
Fri, 13 Jan 2017 12:36:20 +0000 (13:36 +0100)
/proc/[pid]/comm is available since Linux 2.6.33 so
we should be able to rely on that.

Inside /proc/1/cmdline might end up additional boot options,
e.g. when booting with "nocolor" boot option it ends up as
"/sbin/initnocolor" and then our check breaks.

autoconfig.functions

index bf5fa92..3fc0232 100755 (executable)
@@ -23,7 +23,7 @@ umask 022
 # Ignore these signals in non-interactive mode: INT, TERM, SEGV
 [ -z "$PS1" ] && trap "" 2 3 11
 
-if [[ "$(realpath "$(cat /proc/1/cmdline)")" == "/lib/systemd/systemd" ]] ; then
+if [ "$(cat /proc/1/comm 2>/dev/null)" = "systemd" ] ; then
   SYSTEMD=true
 else
   SYSTEMD=false