Risposte:
La mia ricetta per la cancellazione del servizio (attenzione alle rm
dichiarazioni!)
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
È possibile che il servizio systemd 'avvolga' i vecchi script di stile in /etc/init.d, quindi potresti voler ripulire anche quello, ma non è lì che vivono i servizi di systemd.
/etc/init.d/[servicename]
prima di correresystemctl reset-failed
systemctl cat [servicename]
.
Probabilmente stai cercando reset-failed
:
$ sudo systemctl reset-failed
$
Dalla pagina man di systemd:
reset-failed [PATTERN...]
Ripristina lo stato "non riuscito" delle unità specificate o, se non viene passato alcun nome di unità, ripristina lo stato di tutte le unità. Quando un'unità si guasta in qualche modo (es. Processo in uscita con un codice di errore diverso da zero, chiusura anomala o timeout), entrerà automaticamente nello stato "non riuscito" e il suo codice di uscita e lo stato verranno registrati per introspezione dall'amministratore fino al servizio viene riavviato o ripristinato con questo comando.
Sembra che tu l'abbia disinstallato, ma non hai rimosso l'hook di systemd:
# systemctl disable [servicename]
Aggiungendo alla risposta di @ mark-lakata e tenendo presente l'attenzione richiesta per il rm
comando. [chkconfig]
può semplificare il processo! ( clicca qui per leggere su chkconfig )
Per ripetere l'iterazione dell'elenco dei comandi:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
Nota: il primo comando è facoltativo a seconda che si desideri mantenere il servizio in esecuzione nella sessione corrente (come per questa domanda è necessario utilizzare il comando).
Il secondo comando si occupa sia di disabilitare che di rimuovere (seguendo i collegamenti simbolici) il servizio.
chkconfig
era il comando originale per abilitare / disabilitare i servizi SysVinit. Nei sistemi che utilizzano systemd
, può essere presente come comando di compatibilità con le versioni precedenti; ma il systemctl
comando nativo è altrettanto semplice:systemctl disable [servicename]
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 di posizioni 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)
Aggiorna systemd:
systemctl daemon-reload
systemctl reset-failed
Servizi fantasma (non trovato):
Systemd può elencare i servizi fantasma (non trovati) anche se l'unità viene eliminata per diversi motivi
(*) se un servizio è menzionato in un'altra unità ma non esiste, il sistema elencherà comunque quel servizio con lo stato non trovato anche se non esiste un file di unità ... puoi cercare quale unità sta usando quel servizio con una ricerca di testo e modifica quelle unità (sconsigliato se prevedi di installare quel servizio in un secondo momento)
/usr/lib/systemd/system
e anche/etc/systemd/system/
. Per riferimento vedere: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…