O Ubuntu usa em Upstart
vez do init
sistema tradicional . Upstart é mais forte que o init, mas é um pouco mais complicado que init
.
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 vez de chamar scripts init através do /etc/init.d, use o utilitário service (8), por exemplo service mysql restart
Como o script que você está tentando chamar foi convertido em um trabalho Upstart, você também pode usar o utilitário restart (8), por exemplo, reinicie o mysql.
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:
initctl show-config
A saída é assim:
...
hostname
start on startup
udevtrigger
start on ((startup and started udev) and not-container)
tty2
start on (runlevel [23] and ((not-container or container CONTAINER=lxc) or container CONTAINER=lxc-libvirt))
...
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 :-))
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.