Como remover serviços do sistema
Se eu instalar um novo serviço, então decida que eu não quero mais essa aplicação e apague-a, o serviço ainda está listado na saída do systemctl
como error.
De onde vem isso e como posso removê-los completamente?
Se eu instalar um novo serviço, então decida que eu não quero mais essa aplicação e apague-a, o serviço ainda está listado na saída do systemctl
como error.
De onde vem isso e como posso removê-los completamente?
A minha receita de eliminação de serviços (tenha cuidado com as declarações rm
!)
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] symlinks that might be related
systemctl daemon-reload
systemctl reset-failed
É possível que o serviço systemd ‘embrulhe’ os scripts de estilo antigo em /etc/init.d, por isso pode querer limpar isso também, mas isso é não onde os serviços systemd vivem.
Está provavelmente à procura de reset-failed
:
$ sudo systemctl reset-failed
$
A partir da página man do systemd:
reset-failed [PATTERN...]
Repor o estado “falhado” das unidades especificadas, ou se não for passado o nome da unidade, repor o estado de todas as unidades. Quando uma unidade falha de alguma forma (isto é, processo de saída com código de erro diferente de zero, terminando de forma anormal ou temporizado), entrará automaticamente no estado de “falha” e o seu código de saída e estado é registado para introspecção pelo administrador até que o serviço seja reiniciado ou reiniciado com este comando.
Parece que o desinstalou, mas não removeu o gancho do sistema:
# systemctl disable [servicename]
Adicionando à resposta de @mark-lakata e tendo em mente a atenção necessária para o comando rm
. [chkconfig]
pode simplificar o processo! clique aqui para ler sobre chkconfig )
Para re-iterar a lista de comandos:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
Nota: O 1º comando é opcional dependendo de querer ou não manter o serviço em funcionamento na presente sessão (pois para esta questão o comando deve ser utilizado).
O 2º comando trata de desactivar e remover (seguindo as ligações simbólicas) o serviço.
Remover um serviço do sistemad :
O sistemad utiliza a unidade (ficheiro para definir serviços) para remover um serviço que a unidade tem de ser removida… aqui está uma lista de localizações de unidades :
/etc/systemd/system/ (and sub directories)
/usr/local/etc/systemd/system/ (and sub directories)
~/.config/systemd/user/ (and sub directories)
/usr/lib/systemd/ (and sub directories)
/usr/local/lib/systemd/ (and sub directories)
/etc/init.d/ (Converted old service system)
Refresh systemd :
systemctl daemon-reload
systemctl reset-failed
Serviços fantasmas (não encontrados) :
Systemd pode listar serviços fantasmas (não encontrados) mesmo que a unidade seja apagada por muitas razões
(*) se um serviço for mencionado noutra unidade mas não existir sistemad continuará a listar esse serviço com o estado não encontrado mesmo que não exista ficheiro de unidade… pode pesquisar qual a unidade que está a utilizar esse serviço com uma pesquisa de texto e editar essas unidades (não recomendado se planeia instalar esse serviço mais tarde)