ti-enxame.com

Pare o programa em execução na inicialização do Linux

Como faço para parar um programa em execução na inicialização do Linux. Desejo remover alguns aplicativos da inicialização para permitir que eles sejam gerenciados por supervisord por exemplo, Apache2

31
Frozenskys

Dependendo da sua distribuição, use a ferramenta chkconfig ou update-rc.d para ativar/desativar os serviços do sistema.

Em um sistema de estilo redhat/suse/Mandrake:

Sudo chkconfig Apache2 off 

No Debian:

Sudo update-rc.d -f Apache2 remove

Confira suas páginas de manual para mais informações.

29
jacksonh

Se você está lidando com um sistema Ubuntu moderno e algumas outras distribuições, pode ser necessário lidar com uma combinação de scripts init tradicionais e scripts iniciais. O gerenciamento de scripts init é coberto por outras respostas. A seguir, é uma maneira de impedir que um serviço inicial inicie na inicialização:

# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled

O problema com esse método é que ele não permite que você inicie o serviço usando:

# service start servicename

Uma alternativa para isso é abrir o servicename.conf no seu editor favorito e comente as linhas que começam com:

start on

Ou seja, altere isso para

#start on ...

onde o "..." é o que estava depois de "iniciar" anteriormente. Dessa forma, quando você deseja reativá-lo, não precisa se lembrar de quais eram os parâmetros "iniciar".

Por fim, se você possui uma nova versão do upstart, pode simplesmente adicionar o "manual" do Word ao final do arquivo de configuração. Você pode fazer isso diretamente do Shell:

# echo "manual" >> /etc/init/servicename.conf

Isso fará com que o iniciante ignore qualquer frase "iniciar" anteriormente no arquivo.

6
Steven D

Nos sistemas recentes Fedora e Future RHEL

systemctl disable httpd.service

desabilitará o serviço httpd

3
Alastair

Para listar todos os serviços de inicialização

    systemctl

Para interromper a execução de um serviço na inicialização

    Sudo systemctl disable servicename

Por exemplo, se precisarmos parar de executar o servidor ssh na inicialização

    Sudo systemctl disable sshd.service

Podemos ativar isso novamente usando

    Sudo systemctl enable sshd.service

Quase todas as distribuições Linux usam systemd para inicializar serviços de inicialização. Portanto, os comandos acima funcionam para a maioria das distribuições.

1
Prince

O Slackware e o Arch Linux têm métodos semelhantes de parar/iniciar processos na inicialização, diferentes dos exemplos de estilo Ubuntu e Redhat fornecidos acima.

Nos linuxes do Slackware e do Arch, existem scripts sh no diretório /etc/rc.d, normalmente um script por daemon ou um script por subsistema.

Por exemplo, o Slackware inicia o servidor da web Apache com um script /etc/rc.d/rc.httpd, chamado no momento apropriado durante a inicialização do sistema com o argumento "start". O Arch Linux possui scripts com nomes diferentes, mas o mesmo tipo de coisa acontece.

Para impedir que algum processo seja iniciado durante a inicialização do sistema, no Slackware, você apenas torna o script apropriado em /etc/rc.d não executável. Para impedir que o Apache inicie na próxima inicialização:

chmod -x /etc/rc.d/rc.httpd

Para parar um Apache iniciado na inicialização: /etc/rc.d/rc.httpd stop Você precisará ser root.

Arch é um pouco mais complexo. O arquivo /etc/rc.conf, um script do Shell, possui uma matriz DAEMONS. Para impedir que o Apache inicie na inicialização, você deve alterar esta linha no /etc/rc.conf:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)

Para esta linha:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)

Para parar um Apache já em execução, você deve executar /etc/rc.d/httpd stop como raiz.

0
Bruce Ediger

No Ubuntu 10.04, você pode controlar alguns programas de inicialização a partir da GUI.

SystemPreferencesStartup Applications

Startup Applications Preferences

0
jjclarkson