Como os serviços do sistema são iniciados na 12.10?

12

Uma coisa que sempre me confundiu no Ubuntu foi como os serviços do sistema são iniciados. Eu sei que o Ubuntu usa Upstart e suporta SysV, mas qual é usado para iniciar os serviços? Isso importa quando você deseja um início "manual" para um serviço.

Por exemplo, no meu sistema, tenho arquivos para os seguintes serviços em /etc/init.d/<service>(SysV) e /etc/init/<service>.conf(Upstart):

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

Então, se eu quiser desativar a execução do MySQL na inicialização, devo usar a maneira Upstart ou a maneira SysV para desativá-la? Além disso, como posso saber qual deles é realmente usado para iniciar um serviço genérico?

Editar

A dúvida aqui não é como desabilitar / habilitar serviços usando o SysV / Upstart. O que realmente me confunde é que alguns serviços parecem estar definidos (e habilitados) no SysV e no Upstart ao mesmo tempo. Existe alguma precedência entre eles (como se estivesse mysqlativado em ambos iniciá-lo usando o SysV)? Ou pode ser que uma ferramenta use a outra em segundo plano?

Salem
fonte
1
Dê uma olhada na resposta aceita aqui: askubuntu.com/questions/133807/… possui alguns links interessantes.
Rinzwind 2/12/12

Respostas:

2

Em relação aos serviços definidos no SysV e no inicial, geralmente se você o reiniciar por meio do SysV, verá algo assim:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

Entendo que isso significa que o Upstart é preferido para esses serviços, e a implementação do SysV é apenas um invólucro.

Além disso, acho que você tem o significado dos diretórios ao contrário. / etc / init é a configuração inicial, /etc/init.d é a compatibilidade com o SysV, mas são apenas links simbólicos para iniciar esse tipo de serviço.

Alistair Buxton
fonte
6

Depende amplamente da aplicação e do mantenedor da embalagem.

Há uma forte preferência por scripts Upstart porque eles manipulam eventos (o que geralmente é ótimo), mas muitas aplicações não têm scripts Upstart suficientemente bons disponíveis ou o mantenedor da aplicação optou por manter os padrões (aplicativo ou Debian) .

De qualquer maneira, você está na posição em que precisa se adaptar.

  • Para iniciante:
    • Renomeie o arquivo para algo que não termine .confou
    • Adicione manualao arquivo Isso permitirá que você carregue manualmente o serviço.
  • Para serviços mais antigos:

    update-rc.d -f <service> remove
    

Se você possui um /etc/init.d/script para algo e um /etc/init/script e deseja verificar se a versão init.d ainda está ativa, é possível verificar com:

ls -l /etc/rc?.d/*<service>

Se você vir um monte de links simbólicos, ele será instalado no antigo init do SysV.

Oli
fonte
Portanto, se eu tiver um serviço ativado no SysV e no Upstart (por exemplo acpid), posso assumir que ele foi iniciado pelo SysV? Ou, se eu quiser desativá-lo, precisaria fazê-lo usando update-rc.do truque de renomeação?
Salem