3 votes

Comment savoir quel gestionnaire de services est installé sur mon système d'exploitation Linux ?

Je sais que mon installation Linux est fournie avec l'une des implémentations du gestionnaire de services. Cela peut être Systemd, Upstart, ou n'importe quel autre.

Donc, ma question est la suivante : comment puis-je savoir lequel de ces éléments est installé sur mon système Linux ?

Merci.

UPDATE

Voici quelques commandes ps/grep de mon système recherchant systemd et upstart, et leurs résultats :

$ ps aux | grep systemd
root       341  0.0  0.0  52244  3836 ?        Ss   15:54   0:00 /lib/systemd/systemd-udevd --daemon
root       588  0.0  0.0  43452  3200 ?        Ss   15:54   0:00 /lib/systemd/systemd-logind
root      1889  0.0  0.0  17520  1840 ?        S    15:54   0:00 /lib/systemd/systemd-localed
user123      2348  0.0  0.0  15948  2236 pts/1    S+   15:56   0:00 grep --color=auto systemd
$ ps aux | grep upstart
root       329  0.0  0.0  19744  2308 ?        S    15:54   0:00 upstart-udev-bridge --daemon
root       763  0.0  0.0  15808  2168 ?        S    15:54   0:00 upstart-file-bridge --daemon
root       770  0.0  0.0  15528  1984 ?        S    15:54   0:00 upstart-socket-bridge --daemon
user123      1525  0.0  0.0  22304  2336 ?        Ss   15:54   0:00 upstart-event-bridge
user123      1553  0.0  0.0  22368  1828 ?        S    15:54   0:00 upstart-dbus-bridge --daemon --session --user --bus-name session
user123      1560  0.0  0.0  30784   280 ?        S    15:54   0:00 upstart-file-bridge --daemon --user
user123      1562  0.0  0.0  22312   216 ?        S    15:54   0:00 upstart-dbus-bridge --daemon --system --user --bus-name system
user123      2350  0.0  0.0  15948  2280 pts/1    S+   15:56   0:00 grep --color=auto upstart

3voto

Chochos Points 3364

Le plus simple est de déterminer quel système d'exploitation et de voir ce qu'il exécute par défaut. Les systèmes init ne sont pas faciles à modifier.

Sur un système complètement inconnu, je suggère d'utiliser un mélange de ps et grep pour vérifier les processus communs liés à chaque système init et voir

Je n'ai pas de système qui utilise le système 'classique' d'init script donc je n'ai aucun moyen de vérifier.

Sur une boîte moderne fedora ou ubuntu - vous pouvez utiliser ps aux | grep systemd qui devrait émettre des lignes comme usr/lib/systemd/systemd . Il stocke également les fichiers de configuration dans etc/systemd/

Vous utiliserez également systemctl pour gérer les services

Sur un système basé sur le démarrage, vous pouvez faire ce qui suit ps aux | grep upstart et trouver quelques processus liés au démarrage.

Upstart utilise la commande service et il stocke les fichiers de configuration dans /etc/init/ tout comme un fichier init classique. Il utilise son propre format, enregistré sous forme de fichiers .conf - bien que certains d'entre eux soient des fichiers init classiques.

Vous utilisez souvent des scripts d'init de style sysv à côté de ceux plus modernes, mais je n'ai pas de systèmes utilisant purement cela pour vérifier ceux-ci. Si vous écrivez un init scripts pour un système inconnu, c'est généralement un pari sûr, bien que vous perdiez les choses brillantes que les systèmes init plus récents ajoutent.

0voto

SebMa Points 1175

Sur les distributions linux basées sur Debian :

$ dpkg -S $(which init)
systemd-sysv: /sbin/init

Sur les distributions linux basées sur Redhat :

$ rpm -qf $(which init)
upstart-0.6.5-16.el6.x86_64

à compléter...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X