Vérifiez quel processus s'exécute en tant que PID 1. Vous pouvez le faire en exécutant ps 1
et défilement vers le haut. Si vous avez quelque chose de systemd en cours d'exécution en tant que PID 1, vous avez systemd en cours d'exécution.
Sinon, exécutez systemctl
pour lister les unités systemd en cours d'exécution.
Vous pouvez également vérifier ce qu'est /sbin/init; file /sbin/init
vous dira s'il s'agit d'un véritable exécutable ou s'il s'agit d'un lien symbolique vers l'exécutable d'un autre package. Sur une box systemd, par exemple :
[email protected] / # file /sbin/init
/sbin/init: symbolic link to ../lib/systemd/systemd
Pour plus d'informations, consultez ceci :https://en.wikipedia.org/wiki/Linux_startup_process
Une autre façon de voir exactement ce que vous avez sur votre système est de taper man init
et voir sur quelle page de manuel du programme vous vous retrouvez.
Je sais que c'est une vieille question, mais comme je me posais la même question, voici mes 2ct.
Meilleure solution que j'ai trouvée
ps --no-headers -o comm 1
Cela renvoie soit systemd
ou init
et semble fiable dans toutes les distributions et versions de Linux.
file /sbin/init
fonctionnerait, avec l'aide de la correspondance de motifs. Sortie de ps 1
ne semble pas utile car sur certaines distributions Linux, il affichera 'init' (le lien symbolique) malgré l'utilisation de systemd.
Debian 8
$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:02 /sbin/init
$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd
RHEL 7
$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 7:46 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
$ file /sbin/init
/sbin/init: symbolic link to `../lib/systemd/systemd'
SLES 12
$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:24 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
$ file /sbin/init
/sbin/init: symbolic link to `../usr/lib/systemd/systemd'
openSUSE 13.1
$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:33 /sbin/init showopts
$ /sbin/init: symbolic link to `../usr/lib/systemd/systemd'