Comment puis-je savoir si mon Linux commence par systemd
ou quel que soit votre paquet?
Je sais que c'est une vieille question, mais comme je me demandais juste la même question - voici mon 2ct.
ps --no-headers -o comm 1
Cela renvoie soit systemd
ou init
et apparaît fiable sur les distributions et les rejets de Linux.
file /sbin/init
fonctionnerait, avec l'aide de la correspondance des motifs. Sortie de ps 1
n'apparaît pas utile depuis certaines distributions Linux, il imprimera "init" (le symbolique) malgré le système SystemD.
$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:02 /sbin/init
$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd
$ 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'
$ 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'
$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:33 /sbin/init showopts
$ /sbin/init: symbolic link to `../usr/lib/systemd/systemd'
Meilleure réponse que j'ai trouvée jusqu'à présent consistait à demander au gestionnaire de paquets de votre distro quel paquet installé le fichier/sbin/init. Par exemple, sur Debian - Basé, ce serait
dpkg -S /sbin/init
Si /sbin/init
n'existe pas sur votre système, vous pouvez rechercher quel programme comme PID 1 à la place de ps 1
.