Como listar os serviços / daemons iniciados na inicialização _e_ verificar a ordem de carregamento


32

Quero ter certeza de em que ordem os serviços são iniciados durante o processo de inicialização nos sistemas baseados no Debian (Debian Squeeze em particular).

Desde já, obrigado.

Respostas:


37

Em resumo:

ls /etc/rc*.d

Isso mostra o que começa em qual nível de execução e, em cada nível, a ordem é determinada pelo número após a letra (K é Kill, S é iniciado).

Você pode configurar o que é iniciado em cada nível de execução com sysv-rc-conf, que é instalável com o apt.

por exemplo, no meu sistema, o apache2 está vinculado em rc5.d como "S20apache2". Um link no mesmo diretório com o S19 seria iniciado antes dele, algo com o S21 seria iniciado depois dele.

Leitura adicional:


Muito obrigado, mas preciso ter certeza de que, por exemplo, os pimentões são iniciados antes do bind9, mas ambos têm o prefixo S21. Eu editei a seção / etc / init / files em particular Required-Start: e Required-Stop: e executei o update-rc.d para eles. Alguma idéia do que poderia dar errado?
usar o seguinte comando

Você provavelmente deseja insserv em vez de update-rc.d. O Chili é um aplicativo personalizado ou no repositório Debian? Se for um pacote Debian feito corretamente, você não precisará editar o script init, mas se for o caso, tente X-Start-Before em vez de Required-Start (e ative com insserv). Link: wiki.debian.org/LSBInitScripts
Alex Forbes

OK obrigado. Aprendi sobre o insserv e mais uma coisa: "cifrão, porque são instalações virtuais predefinidas. Caso contrário, os nomes dos scripts de inicialização do System V, encontrados em /etc/init.d/, devem ser usados, embora sem um dólar. assinar ou possível extensão .sh ". E agora os prefixos estão corretos. Obrigado :)
user155872

19

Os utilitários rcconf e sysv-rc-conf ajudariam?

# aptitude install rcconf sysv-rc-conf

Depois, você pode executá-los digitando rcconfou sysv-rc-conf.

rcconf sysv-rc-conf


9

Você pode listar todos os serviços e seus status com este comando simples:

service --status-all

Do manual:

service --status-all executa todos os scripts init, em ordem alfabética, com o comando status . O status é [+] para serviços em execução, [-] para serviços interrompidos e [? ] para serviços sem um comando 'status'. Esta opção chama apenas o status para trabalhos sysvinit; trabalhos iniciados podem ser consultados de maneira semelhante com a lista initctl.


1
Eu não acho que isso aborda a parte "em que ordem" da pergunta.
kmarsh

2
e isso também não realmente dizer qual é habilitado (iniciar no boot)
kiltek

Eu tenho scripts que aparecem nesse comando, mas eles não foram iniciados.
Owl #

4
for i in `find /etc/rc*.d -name S*`; do basename $i | sed -r 's/^S[0-9]+//'; done | sort | uniq

Sample output:

acpid
anacron
avahi-daemon
boa
bootlogd
bootlogs
bootmisc.sh
checkfs.sh
checkroot-bootclean.sh
checkroot.sh
cryptdisks
cryptdisks-early
dbus
delayed-services
hostname.sh
hwclock.sh
keyboard-setup
killprocs
kmod
lightdm
mountall-bootclean.sh
mountall.sh
mountdevsubfs.sh
mountkernfs.sh
mountnfs-bootclean.sh
mountnfs.sh
mtab.sh
pppd-dns
procps
qemu-kvm
rc.local
rmnologin
rsyslog
single
sleep
stop-bootlogd
stop-bootlogd-single
udev
udev-mtab
x11-common

1

No Debian, o rcconf deve executar o truque, apenas para configurar a parada / início dos serviços já presentes.

Eu o uso o tempo todo no Debian Jessie e Wheezy.


Você poderia explicar um pouco mais como usar a ferramenta mencionada?
Womble
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.