Comando para listar serviços iniciados na inicialização?

123

Existe um comando para listar serviços que são executados na inicialização? Eu imagino que isso envolveria a análise de /etc/init.d/ e os vários diretórios /etc/rc.* .

    
por Eric H 29.07.2010 / 01:40

7 respostas

102

Você pode simplesmente usar o comando initctl list shell para listar o conteúdo de /etc/init em vez do comando dbus-send sugerido.

    
por Scott 13.10.2010 / 04:04
94

A resposta rápida é: Depende do seu sistema init .

A resposta mais longa é: Para versões atuais do Ubuntu, você provavelmente tem uma mistura de Upstart e SystemV . Versões mais recentes do Ubuntu depois de 15.04 "Vivid Vervet" (e outras distribuições Linux como RHEL / CentOS 7) estão se movendo para usar SystemD .

Upstart

Para listar todos os serviços:

initctl list

Para listar todos os serviços do Upstart e executar initctl show-config neles, esse recurso de uma linha pode ser útil:

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

Sistema V

Para listar todos os serviços:

service --status-all

OR:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

Para listar todos os serviços:

systemctl list-unit-files --type=service

OR:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service
    
por TrinitronX 27.09.2015 / 05:49
13

Os diretórios /etc/init.d e /etc/rc.* foram substituídos pela ferramenta de inicialização ' upstart '. Embora os scripts nesses diretórios sejam executados conforme esperado, o novo método para executar coisas no init é definido por arquivos em /etc/init/

Você pode listar todos os trabalhos iniciantes consultando o upstart pelo dbus:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

Você pode ter que alterar 0_6 para refletir a versão do upstart que você possui. Este comando funciona na minha instalação lúcida.

    
por Jeremy Kerr 29.07.2010 / 05:30
12

Se você quiser uma boa representação gráfica dos serviços e o tempo que leva para inicializar, tente:

apt-get install bootchart
    
por john 13.10.2010 / 05:39
11

Id usa initctl show-config <servicename> para realmente obter os detalhes de quando / se seu serviço será iniciado durante a inicialização.

Assim:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

Ou para o daemon idmap do NFS4:

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

O chkconfig só é preferível em sistemas baseados em RedHat.

    
por CBmemnon 21.07.2014 / 12:46
8

Em 12.04, poderíamos usar:

sudo apt-get install chkconfig
chkconfig --list

mas foi removido em 12.10 .

Exemplo de saída:

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
    
-2

Usando o gawk:

ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'

Exemplo de saída:

$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S
    
por Carlos Alvsan 07.01.2017 / 17:04