web-dev-qa-db-fra.com

Pourquoi la commande pstree ne montre-t-elle pas init dans Ubuntu 16.04 LTS?

J'essaie d'examiner le résultat de la commande pstree. Mais pour une raison quelconque, il part toujours de quelque chose appelé systemd par opposition à init. J'ai vérifié les ID de processus d'init et systemd à l'aide de la commande ps aux et init a un PID égal à 1, tandis que systemd possède un autre PID. Alors pourquoi init n'est-il pas affiché dans la sortie de mon pstree? Y a-t-il une option que je dois donner?

De plus, j'ai lu sur la controverse entre Systemd et init, mais Ubuntu 16.04 LTS utilise toujours init pour tout commencer, n'est-ce pas?

Mise à jour sur les raisons pour lesquelles différents PID?

Il se trouve que différents PID que je pensais faisaient partie de mon ignorance. L'init avait un PID 1, alors que systemd n'était pas ce dont je parlais. Lorsque j’ai exécuté ps aux|grep systemd, j’ai trouvé des PID pour /lib/systemd/systemd-*, où * signifie des caractères supplémentaires. Donc, ce dont je parlais n’était pas systemd, mais quelques autres processus qui étaient des extensions (est-ce le bon mot?) De systemd je suppose.

Quelques exemples pour ce * sont les suivants

/lib/systemd/systemd-journald
/lib/systemd/systemd-udevd
/lib/systemd/systemd-timesyncd
2
posixKing

Depuis 15.04, init sur Ubuntu est systemd. Il est possible d'utiliser Upstart , mais la valeur par défaut est systemd. Par exemple, /sbin/init sera un lien vers /lib/systemd/systemd. /sbin/{shutdown,reboot,telinit,halt,runlevel,poweroff} sont des liens vers /sbin/systemctl. Même en 16.04, Upstart était utilisé comme une session init . Vous pouvez donc voir Upstart comme processus parent ou processus ancêtre dans votre connexion graphique (bien que - il semble avoir changé dans 16.1 ).

Les autres processus que vous voyez sont des composants systemd. ils sont développés et distribués avec systemd, mais beaucoup ne sont pas essentiels à l'exécution de systemd en tant qu'init. De nombreux composants peuvent être remplacés ou désactivés. Pour citer la page d'accueil de systemd :

systemd est une suite de blocs de construction de base pour un système Linux. Il fournit un gestionnaire de système et de services qui s'exécute en tant que PID 1 et démarre le reste du système. ... D'autres composants incluent un démon de journalisation, des utilitaires permettant de contrôler la configuration système de base, tels que le nom d'hôte, la date et les paramètres régionaux, de gérer la liste des utilisateurs connectés et des conteneurs en cours d'exécution ainsi que les machines virtuelles, les comptes système, les répertoires et paramètres d'exécution, ainsi que les démons permettant de: gérer la configuration réseau simple, la synchronisation de l'heure réseau, le transfert des journaux et la résolution de noms.

Et cet article de blog de l'un des créateurs de systemd (Lennart Poettering):

  1. Mythe: Systemd ne vous permet pas de remplacer ses composants.

    Ce n'est pas vrai, vous pouvez désactiver et remplacer à peu près n'importe quelle partie de systemd, à de très rares exceptions près. Et ces exceptions (telles que journald) vous permettent généralement d’utiliser une alternative côte à côte, tout en coopérant bien avec elle.

3
muru