No Ubuntu,
- Existe um comando para mostrar uma lista de todos os serviços de inicialização automática?
- Existe um comando para verificar se um serviço é iniciado automaticamente no momento da inicialização ou não?
Eu fiz o Google e o IRC. Não consigo encontrar a resposta. Talvez não exista esse comando no Ubuntu. No começo, eu achava que todos os serviços iniciados automaticamente estariam abaixo /etc/rc2.d/
, mas eu estava errado sobre isso. Alguns estão configurados apenas em /etc/init/*.conf
. Então eu tentei a chkconfig
ferramenta (instalei-a manualmente), ela não funciona o tempo todo. Por exemplo, fornece o resultado errado para o mongodb
qual é iniciado automaticamente /etc/init/mongodb.conf
.
service --status-all
e initctl list
pode apenas informar o status atual dos serviços em vez do status de inicialização automática. update-rc.d
é um comando para alterar o status de inicialização automática em vez de mostrar o status.
Se não houver resposta para minha pergunta, estou apenas me perguntando por que é tão difícil verificar os serviços de inicialização automática no Ubuntu.
chkconfig --list
vai funcionar certo?on
significa que o serviço está sendo executado nesse nível de execução e esse serviço será iniciado automaticamente quando o sistema inicializar.ls /etc/rc?.d
?Respostas:
O Ubuntu usa em
Upstart
vez doinit
sistema tradicional . Upstart é mais forte que o init, mas é um pouco mais complicado queinit
.O iniciante, por outro lado, é baseado em eventos. Um "evento" pode ser algo como "inicializar" ... ou pode ser muito mais específico, como "a rede está pronta para uso agora". Você pode especificar quais scripts dependem de quais eventos. Qualquer coisa que não esteja aguardando um evento pode ser executada sempre que houver CPU disponível.
Esse sistema baseado em eventos tem outra vantagem: você pode usá-lo teoricamente mesmo depois que o sistema estiver em funcionamento. Eventualmente, o upstart está programado para assumir tarefas como conectar dispositivos externos, como pen drives (atualmente tratados pelo udev e hal) ou executar programas em horários específicos (atualmente tratados pelo cron).
Como você deve saber agora, um daemon morto (que não é executado na inicialização) pode estar vivo e iniciar devido a um evento.
O Ubuntu possui os arquivos / etc / init, para Upstart, e /etc/init.d, para os arquivos SysV antigos. Alguns dos arquivos são scripts regulares do SysV Init que ainda não foram migrados. Mas alguns serviços migrados mantêm um link de /etc/init.d para / lib / init / upstart-job. Se você executar um desses, ele funciona, mas imprime um aviso primeiro:
Em uma máquina Upstart, o init vem do upstart. Em vez de executar um script mestre rc que chama os scripts para um nível de execução específico, o init do Upstart recebe trabalhos de seu diretório de trabalhos.
Agora sabemos que não há uma maneira simples de listar daemons de inicialização automática, você deve listar todos os daemons e verificá-los um por um. O daemon pode ser iniciado por
init
,upstart
ou mesmo por um evento posterior. A maneira mais simples de obter esta lista é executando este comando no shell:A saída é assim:
Alguns itens, como o primeiro, são tão simples que
hostname
começam na inicialização. Mas outros itens podem parecer mais complicados. (Mas felizmente legível por humanos :-))fonte
Na verdade, todos os serviços estão presentes somente no /etc/init.d:
Só mais uma coisa, todos os serviços estão presentes
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
também, mas é apenas um link simbólico/etc/init.d
.Veja aqui este é o conteúdo do
rc1.d
diretório:Aqui você pode observar o link simbólico para init.d (K15pulseaudio -> ../init.d/pulseaudio).
Mas aqui todo serviço está vinculado ao init.d, certo? Mas todo serviço não será iniciado; o motivo é dois scripts.
O primeiro é um script S (S30killprocs) ---> start
O segundo é um script k (K15pulseaudio) ---> kill
Todos os serviços de script K eliminam os serviços e todos os serviços de script S iniciam os serviços para esse nível de execução.
Em resumo
S70dns-clean -> ../init.d/dns-clean
inicie odns-clean
serviço no nível de execução 1.K15pulseaudio -> ../init.d/pulseaudio
mata opulseaudio
serviço no nível de execução 1.fonte
Você pode instalar o sysv-rc-conf, que é um programa ncurses para configurar / mostrar os níveis de rc graficamente.
fonte
Veja aqui: update-rc-d-cheat-sheet
Nenhuma, eu sei (o que não significa nada;), mas você pode começar a ler aqui: askubuntu forum - service dependency
fonte