2012-12-01 02:23:18 +0000 2012-12-01 02:23:18 +0000
218
218

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?

Respostas (5)

352
352
352
2015-07-06 16:46:50 +0000

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.

34
34
34
2016-04-13 09:41:17 +0000

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.

24
24
24
2012-12-01 05:39:23 +0000

Parece que o desinstalou, mas não removeu o gancho do sistema:

# systemctl disable [servicename]

5
5
5
2018-07-29 12:48:30 +0000

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:

  1. systemctl stop [servicename]
  2. chkconfig [servicename] off
  3. systemctl daemon-reload
  4. 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.

1
1
1
2018-11-07 15:31:17 +0000

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

  1. unidade ainda presente num dos directórios do systemd
  2. A unidade não sai mas um link de ficheiro continua presente numa das directorias do sistema
  3. O serviço é utilizado noutra(s)unidade(s)*

(*) 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)