como saber se estou usando o systemd no meu linux?

5

Como eu poderia saber se meu linux começa com systemd ou qualquer pacote?

    
por Lucho 25.12.2015 / 19:29

2 respostas

11

Verifique qual processo está sendo executado como PID 1. Você pode fazer isso executando ps aux | less e rolando para o topo. Se você tem alguma coisa do systemd rodando como PID 1, você tem o systemd rodando.

Como alternativa, execute systemctl para listar unidades systemd em execução.

Você também pode querer verificar o que é / sbin / init; file /sbin/init dirá se é um executável real ou se é um link simbólico para o executável de outro pacote. Em uma caixa do systemd, por exemplo:

root@boxy / # file /sbin/init
/sbin/init: symbolic link to ../lib/systemd/systemd

Para mais informações, verifique: link

EDIT: Conforme observado pelo comentário do deltab, em vez de usar ps aux | less , ps 1 é a melhor maneira de fazer isso. Obrigado por esclarecer isso!

EDIT2: Outra maneira de ver exatamente o que você tem no seu sistema é digitar man init e ver em qual página do programa você está.

    
por 26.12.2015 / 02:12
2

Eu sei que esta é uma pergunta antiga, mas desde que eu estava me fazendo a mesma pergunta - aqui está o meu 2ct.

Melhor solução que eu criei

ps --no-headers -o comm 1

Isso retorna systemd ou init e parece confiável nas distribuições e versões do Linux.

file /sbin/init funcionaria, com ajuda da correspondência de padrões. A saída de ps 1 não parece útil, pois em algumas distribuições Linux ele imprime 'init' (o link simbólico) apesar do sistema ser usado.

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'

SLES 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'
    
por 28.02.2017 / 23:04