web-dev-qa-db-fra.com

Comment savoir si j'utilise SystemD sur Linux?

Comment puis-je savoir si mon Linux commence par systemd ou quel que soit votre paquet?

9
Lucho

Je sais que c'est une vieille question, mais comme je me demandais juste la même question - voici mon 2ct.

Meilleure solution que j'ai proposée

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.

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'

Sale 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'
8
sborsky

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.

0
ychaouche