Pare o programa em execução na inicialização do Linux
29
Como faço para parar um programa em execução na inicialização do Linux. Quero remover alguns aplicativos da inicialização para permitir que eles sejam gerenciados, por supervisordexemplo, apache2
Por que você precisa de -f (presumo que seja força) nas distribuições baseadas no Debian?
Frozenskys
2
Existem dois conjuntos de arquivos em jogo aqui. Você tem o script init real em /etc/init.d/ e os links para ele no diretório runlevel /etc/rcrunlevel.d/. Esses caras apontam para o script em /etc/init.d/ Se você não usar -f update-rd.d falhará, A menos que o script em /etc/init.d/ já esteja excluído. Se você usar -f update-rc.d, os arquivos de link serão excluídos corretamente, independentemente de o script /etc/init.d/ ou não ser excluído.
jacksonh
Ah, isso faz muito sentido, eu tinha esquecido que os scripts de nível de execução eram apenas links para os scripts de inicialização. Obrigado pela explicação extra.
Frozenskys 10/08
6
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:
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.confarquivo no seu editor favorito e comentar 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, basta adicionar a palavra "manual" 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.
Obrigado! Eu tinha tentado muitos métodos, mas esse systmctlcomando funcionou bem.
loved.by.Jesus
1
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.
Bem-vindo à U&L e obrigado por sua contribuição! Gostaria de salientar que esta pergunta tem cerca de oito anos agora, portanto a resposta aceita estava correta para a época. O uso do systemctl pode estar correto agora , mas está correto para uma pergunta diferente .
Jeff Schaller
@ Prince, obrigado pelas explicações detalhadas. Isso me ajudou a entender como a inicialização do boot funciona no meu Xubuntu.
loved.by.Jesus
0
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, geralmente 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 de shell, possui uma matriz DAEMONS. Para impedir que o Apache inicie na inicialização, você deve alterar esta linha no /etc/rc.conf:
1) toque em super-chave no teclado 2) pesquise 'Aplicativos de Inicialização' 3) escolha o programa que deseja desativar 4) clique como esta resposta no worx.
Respostas:
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:
No Debian:
Confira suas páginas de manual para mais informações.
fonte
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:
O problema com esse método é que ele não permite que você inicie o serviço usando:
Uma alternativa para isso é abrir o
servicename.conf
arquivo no seu editor favorito e comentar as linhas que começam com:Ou seja, altere isso para
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, basta adicionar a palavra "manual" ao final do arquivo de configuração. Você pode fazer isso diretamente do shell:
Isso fará com que o iniciante ignore qualquer frase "iniciar" anteriormente no arquivo.
fonte
Nos sistemas recentes Fedora e Future RHEL
desabilitará o serviço httpd
fonte
systmctl
comando funcionou bem.Para listar todos os serviços de inicialização
Para interromper a execução de um serviço na inicialização
Por exemplo, se precisarmos parar de executar o servidor ssh na inicialização
Podemos ativar isso novamente usando
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.
fonte
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
, geralmente 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:
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 de shell, possui uma matriz DAEMONS. Para impedir que o Apache inicie na inicialização, você deve alterar esta linha no /etc/rc.conf:
Para esta linha:
Para parar um apache já em execução, você deve executar
/etc/rc.d/httpd stop
como root.fonte
No Ubuntu 10.04, você pode controlar alguns programas de inicialização a partir da GUI.
System→ Preferences→Startup Applications
fonte
1) toque em super-chave no teclado 2) pesquise 'Aplicativos de Inicialização' 3) escolha o programa que deseja desativar 4) clique como esta resposta no worx.
fonte