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

Come rimuovere i servizi di systemd

Se installo un nuovo servizio e poi decido che non voglio più quell'applicazione e la cancello, il servizio è ancora elencato nell'output di systemctl come errore.

Da dove viene questo e come posso rimuoverli completamente?

Risposte (5)

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

La mia ricetta per l'obliterazione del servizio (attenzione alle dichiarazioni di 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
``` &001 


È possibile che il servizio systemd "avvolga" gli script vecchio stile in /etc/init.d, quindi potreste voler ripulire anche quello, ma non è _non_ dove vivono i servizi systemd.
34
34
34
2016-04-13 09:41:17 +0000

Probabilmente state cercando reset-failed:

$ sudo systemctl reset-failed
$
``` &001 


Dalla pagina systemd man: 


> `reset-failed [PATTERN...]` 
> 
> Reset dello stato "failed" delle unità specificate, o se non viene passato il nome dell'unità, resettate lo stato di tutte le unità. Quando un'unità si guasta in qualche modo (cioè il processo esce con un codice di errore diverso da zero, termina in modo anomalo o con un timing out), essa entra automaticamente nello stato "failed" e il suo codice e stato di uscita viene registrato per l'introspezione da parte dell'amministratore fino a quando il servizio non viene riavviato o resettato con questo comando.
24
24
24
2012-12-01 05:39:23 +0000

Sembra che l'abbiate disinstallato, ma non avete rimosso il gancio systemd:

# systemctl disable [servicename]

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

Aggiungendo alla risposta di @mark-lakata e tenendo presente l'attenzione richiesta per il comando rm. [chkconfig] può semplificare il processo! cliccare qui per leggere la risposta di chkconfig )

Per ripetere l'elenco dei comandi:

  1. systemctl stop [servicename]
  2. chkconfig [servicename] off
  3. systemctl daemon-reload
  4. systemctl reset-failed
  5. &007
  6. &007

Nota: Il 1° comando è facoltativo a seconda che si voglia mantenere il servizio in esecuzione nella sessione attuale o meno (come per questa domanda il comando deve essere usato).

Il 2° comando si occupa sia di disabilitare che di rimuovere (seguendo i link simbolici) il servizio.

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

Rimozione di un servizio da systemd :

Systemd utilizza l'unità (file per definire i servizi) per rimuovere un servizio che l'unità deve essere rimossa… Ecco un elenco delle ubicazioni delle unità :

/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)

Rinfresca systemd :

systemctl daemon-reload
systemctl reset-failed
``` &001 


**Servizi fantasma (non trovati) :** 


Systemd può elencare i servizi fantasma (non trovati) anche se l'unità viene cancellata per molti motivi 


1. unità ancora presente su una delle directory di systemd 
2. unità ancora presente su una delle directory di systemd. 2. l'unità non esce ma un link di file è ancora presente su una delle directory di systemd 
3. il servizio è usato in altre unità \* 


(\*) se un servizio è menzionato in un'altra unità ma non esiste systemd elencherà ancora quel servizio con lo stato non trovato anche se non c'è un file dell'unità... potete cercare quale unità sta usando quel servizio con una ricerca di testo e modificare quelle unità (non consigliato se pensate di installare quel servizio in un secondo momento)