Por que o comando pstree show init no Ubuntu 16.04 LTS não funciona?

3

Estou tentando examinar a saída do comando pstree . Mas, por alguma razão, sempre começa com algo chamado systemd em vez de ser init. Eu verifiquei para ver o ID do processo de init e systemd usando o comando ps aux e o init tem um PID de 1, enquanto o systemd tem algum outro PID. Então, por que o init não está sendo mostrado na saída do meu pstree? Existe uma opção que eu preciso dar?

Também li sobre a controvérsia systemd vs init, mas o ubuntu 16.04 LTS ainda usa o init para iniciar tudo certo?

Atualizar por que diferentes PIDs?

Acontece que diferentes PIDs que eu pensei que eram parte da minha ignorância. O init tinha um PID 1, enquanto o systemd não era o que eu estava falando. Em vez disso, quando executei ps aux|grep systemd , encontrei PIDs para /lib/systemd/systemd-* , em que * significa alguns caracteres extras. Então, o que eu estava falando não era systemd, mas alguns outros processos que eram extensões (é a palavra correta?) Do systemd eu acho.

Alguns dos exemplos para esse * são os seguintes

/lib/systemd/systemd-journald
/lib/systemd/systemd-udevd
/lib/systemd/systemd-timesyncd
    
por posixKing 01.11.2016 / 03:25

1 resposta

3

Desde 15.04, o init no Ubuntu é systemd. É possível usar o Upstart , mas o padrão é systemd. Por exemplo, /sbin/init será um link para /lib/systemd/systemd . /sbin/{shutdown,reboot,telinit,halt,runlevel,poweroff} são links para /sbin/systemctl . Mesmo em 16.04, o Upstart foi usado como init de sessão , portanto, você pode ver o Upstart como o processo pai ou um processo ancestral em seu login gráfico (embora parece ter mudado em 16.10 ).

Os outros processos que você vê são componentes do systemd; eles são desenvolvidos e distribuídos junto com o systemd, mas muitos não são essenciais para executar o systemd como init. Muitos componentes podem ser substituídos ou desativados. Para citar a página inicial do systemd :

  

O systemd é um conjunto de blocos de construção básicos para um sistema Linux. isto   fornece um gerenciador de sistemas e serviços que é executado como PID 1 e inicia   o resto do sistema. ... Outras partes incluem um daemon de registro,   utilitários para controlar a configuração básica do sistema, como o nome do host,   data, localidade, manter uma lista de usuários logados e executando   contêineres e máquinas virtuais, contas do sistema, diretórios de tempo de execução   e configurações e daemons para gerenciar a configuração de rede simples,   sincronização de tempo de rede, encaminhamento de log e resolução de nomes.

E esta postagem no blog de um dos criadores do systemd (Lennart Poettering):

  
  1. Mito: o systemd não permite que você substitua seus componentes.

         

    Não é verdade, você pode desligar e substituir praticamente qualquer parte de   systemd, com poucas exceções. E essas exceções (como   journald) geralmente permitem que você execute uma alternativa lado a lado para   enquanto coopera muito bem com isso.

  2.   
    
por muru 01.11.2016 / 04:43