Failed to start ...: Unit ... service not found – Linux UNIT_NOT_FOUND

UNIT_NOT_FOUND

L'errore systemctl Unit not found indica che systemd non riesce a caricare l'unità richiesta con quel nome. Il servizio può essere scritto male, non installato, presente in un percorso non ancora ricaricato o rappresentato da un template che richiede un'istanza. La diagnosi usa systemctl list-unit-files, status e cat per distinguere nome, installazione, stato e percorso del file.

Cosa significa questo errore?

L'errore systemctl Unit not found indica che systemd non riesce a caricare l'unità richiesta con quel nome. Il servizio può essere scritto male, non installato, presente in un percorso non ancora ricaricato o rappresentato da un template che richiede un'istanza. La diagnosi usa systemctl list-unit-files, status e cat per distinguere nome, installazione, stato e percorso del file.

Messaggio originale

Failed to start ...: Unit ... service not found

Contesto e parole chiave

Alias

  • systemctl Unit not found
  • Unit not found

Messaggi alternativi

  • File unit mancante o nome errato
  • Servizio systemd non trovato

Prodotti

  • systemd / systemctl

Piattaforme

  • Debian
  • Fedora
  • RHEL / AlmaLinux
  • Ubuntu

Parole chiave

  • linux service not found
  • systemctl unit not found
  • systemd daemon reload

Cause possibili

Nome del servizio o suffisso errato

Il comando usa un nome diverso da quello del file unit o dimentica l'istanza richiesta da un template.

molto comune

Unità aggiunta ma manager non ricaricato

Un file appena creato o modificato non è ancora stato riletto dal manager systemd.

comune

Diagnosi

Unità installate e nome canonico

Elencare i file unit e cercare il servizio senza affidarsi solo all'autocompletamento della shell.

Come leggere il risultato. Il nome restituito deve corrispondere esattamente all'unità usata nel comando.

bash
systemctl list-unit-files --type=service | grep -i nome

Percorso e contenuto dell'unità

Usare status, cat e daemon-reload dopo una modifica.

Come leggere il risultato. Se cat non trova l'unità, il file non è nel percorso atteso o il nome è errato.

bash
sudo systemctl daemon-reload && systemctl cat nome.service

Risoluzione

Correzione del nome e ricarica di systemd

Difficoltà: facileRischio: bassoRichiede amministratore

Usare il nome reale del file unit e ricaricare il manager dopo averlo installato o modificato.

  1. Individuare il file .service.
  2. Correggere nome e suffisso nel comando.
  3. Eseguire daemon-reload.
  4. Avviare e controllare status.
bash
sudo systemctl daemon-reload && sudo systemctl start nome.service && systemctl status nome.service

Installazione o abilitazione del pacchetto corretto

Difficoltà: mediaRischio: medioRichiede amministratore

Installare il pacchetto che fornisce l'unità oppure usare il nome previsto dal vendor.

  1. Identificare quale pacchetto dovrebbe fornire il servizio.
  2. Verificare l'elenco dei file installati dal pacchetto.
  3. Installare o ripristinare il pacchetto.
  4. Ricaricare systemd e ripetere il test.

Domande frequenti

daemon-reload installa un servizio mancante?

No. Rilegge le unità già presenti; se il file o il pacchetto non esiste, occorre installarlo o correggere il percorso prima del reload.

Approfondimenti

Schede correlate