Una soluzione rapida per risolvere il problema con il comando "systemctl" e l'introduzione di alcune alternative efficienti ad esso
systemctl
essendo un'utilità importante nell'ecosistema Linux, è molto comune che si possa riscontrare un errore "systemctl: comando non trovato" quando si tenta di eseguire il systemctl
comando. Questo potrebbe non essere il caso per tutte le distribuzioni di Linux, ma probabilmente puoi riscontrare questo errore quando stai usando una versione precedente della distribuzione Linux che non supporta il systemctl
comando.
Il problema che si verifica è un problema molto comune e può essere facilmente risolto. Quindi, non preoccuparti affatto e segui il tutorial completo per trovare una soluzione rapida e semplice.
Cercheremo prima di capire il problema e poi risolverlo.
Approfondimenti su systemctl
e sistema
Poiché l'errore è con riferimento a systemctl
comando, sarebbe bene conoscere le basi di questo comando per comprendere meglio la correzione di questo errore.
systemctl
è un'utilità della riga di comando offerta da Linux, utilizzata per monitorare e controllare un'altra utilità della riga di comando denominata "sistema
'. Inoltre, ispeziona e controlla il gestore del sistema insieme al "sistema
' utilità.
sintassi generale:
systemctl [opzione] [nome]
sistema
è un insieme di demoni, librerie e utilità che controlla i programmi che vengono eseguiti all'avvio del sistema. sistema
riesce anche ad avviare un lavoro importante come avviare un diario dell'attività del sistema.
Questa utilità funziona come utilità di gestione centrale per la maggior parte, se non per tutti, i sistemi operativi basati su Linux.
Causa principale dell'errore
La causa più probabile di questo errore potrebbe essere l'utilizzo di una versione precedente della distribuzione Linux. Molte delle versioni precedenti usano il SysV init
invece del sistema
utilità.
sistema
l'utilità è assente nelle precedenti versioni di Linux in quanto è una recente aggiunta al paniere di utilità fornite da Linux. systemctl
è compatibile per funzionare e monitorare con il sistema
utility e non funzionerà con le configurazioni precedenti come SysV
dentro
o parvenu
.
Se non stai usando sistema
, allora questo errore è previsto. È così semplice e diretto.
Potresti riscontrare questo errore nel modo seguente.
gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] password per gaurav: sudo: systemctl: comando non trovato gaurav@ubuntu:~$
Qui, abbiamo tentato di avviare Ubuntu Fire Wall (ufw
) usando il systemctl
comando e ha riscontrato l'errore "systemctl: comando non trovato".
Quindi, cosa fare ora se non desideri modificare la tua attuale distribuzione Linux che utilizza un'altra utilità di gestione centrale diversa da sistema
? Bene, abbiamo una soluzione rapida per te che ti consentirebbe di mantenere la tua attuale distribuzione Linux e di correggere il tuo errore in pochissimo tempo.
Osserviamo la correzione ora.
Correzione dell'errore "systemctl: comando non trovato"
Infine, esaminiamo ora la soluzione del problema in questione dopo aver analizzato le cause e i fatti di base sul problema.
Correzione 1: sostituzione systemctl
con servizio
comando
Una semplice soluzione per l'errore in questione consiste nell'utilizzare il servizio
comando invece dell'errore che causa systemctl
comando.
servizio
il comando aiuta nell'esecuzione del SystemV init
script utilizzato dalle distribuzioni Linux precedenti. Se non si desidera installare il sistema
utility sul tuo sistema, questa correzione funzionerà sicuramente per te.
Puoi avviare, riavviare o interrompere qualsiasi servizio e demone sulla tua distribuzione Linux usando il servizio
comando.
Il servizio
comando e il systemctl
funzione di comando allo stesso modo, l'unica differenza qui è la compatibilità del comando con le utilità responsabili del corretto funzionamento del sistema.
Vediamo il servizio
comando con illustrazione.
Sintassi generale:
sudo service [nome_servizio] [azione]
Nella sintassi sopra, il [azione]
lo spazio può includere azioni come inizio
, fermare
, ricomincia
o stato
.
Eseguiremo lo stesso comando per avviare il ufw
servizio utilizzando il servizio
comando.
sudo service ufw start
Produzione:
gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - Firewall semplice Caricato: caricato (/lib/systemd/system/ufw.service; abilitato; preset del fornitore: enab Attivo: attivo (uscito) da Mon 2020-09-28 11:22:34 IST; 1h 5min fa Docs: man:ufw(8) Process: 333 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status =0/SU Main PID: 333 (code=exited, status=0/SUCCESS) Sep 28 11:22:34 ubuntu systemd[1]: avviato firewall semplice. Avvertenza: il journal è stato ruotato dall'avvio dell'unità. L'output del log è incompleto
qui, il servizio
viene utilizzato il comando al posto di systemctl
comando e ha funzionato perfettamente.
Vediamo un altro esempio di servizio
comando per comprenderlo correttamente.
sudo service apache2 start
Produzione:
gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Il server HTTP Apache Caricato: caricato (/lib/systemd/system/apache2.service; abilitato; preset del fornitore: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Attivo: attivo (in esecuzione) da lun 2020-09-28 11:22:47 IST; 1h 16min fa Processo: 1172 ExecStart=/usr/sbin/apachectl start (code= terminato, stato=0/SUCCE PID principale: 1248 (apache2) Task: 55 (limite: 4456) Gruppo C: /system.slice/apache2.service 1248 /usr/sbin/apache2 -k start ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28 settembre 11:22:43 ubuntu systemd[1]: avvio del server HTTP Apache... 28 settembre 11:22:47 ubuntu apachectl[1172 ]: AH00112: Avvertimento: DocumentRoot [/var/www 28 settembre 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: impossibile rilevare in modo affidabile il 28 settembre 11:22:47 ubuntu systemd[1]: avviato Apache HTTP Server. gaurav@ubuntu:~$
Abbiamo usato il servizio
comando per avviare l'utilità apache2. Usando il stato
opzione con il servizio
comando visualizzerà lo stato corrente del servizio. Otterremo i dettagli se è in esecuzione o è morto (inattivo).
Usiamo ora il fermare
azione per arrestare il servizio apache2 utilizzando il servizio
comando.
gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 status lines 1--1...salto... ● apache2.service - Il server HTTP Apache caricato: caricato (/lib/systemd/ system/apache2.service; abilitato; fornitore preimpostato: abilitato) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Attivo: inattivo (morto) da lun 2020-09-28 12 :42:06 TSI; 1s fa Processo: 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Processo: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) PID principale : 1248 (code=exited, status=0/SUCCESS) Sep 28 11:22:43 ubuntu systemd[1]: Avvio del server HTTP Apache... Sep 28 11:22:47 ubuntu apachectl[1172]: AH00112: Avviso : DocumentRoot [/var/www/html] non esiste Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Impossibile determinare in modo affidabile il nome di dominio completo del server, utilizzando ::1. Imposta 'S Sep 28 11:22:47 ubuntu systemd[1]: avviato il server HTTP Apache.
Dagli esempi dettagliati spiegati sopra, possiamo concludere che possiamo usare questo comando invece di systemctl
comando per controllare e monitorare altri demoni e servizi nella distribuzione Linux.
Correzione 2: verifica di sistema
pacchetto
A volte può essere il caso che solo il sistema
l'installazione del pacchetto potrebbe risolvere il problema. Innanzitutto, è necessario verificare lo stato di installazione del sistema
pacchetto sul tuo sistema.
Usa il seguente comando per controllare il pacchetto sul tuo sistema.
sudo dpkg -l | grep sistema
Se la sistema
utilty è già installato, otterrai un output simile a quello mostrato di seguito.
gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] password per gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 semplice sistema di messaggistica interprocesso (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 modulo nss che fornisce dinamica risoluzione del nome dell'utente e del gruppo ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 system and service manager - modulo PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 libreria di utilità di sistema ii libsystemd0:i386 237-3ubuntu10.42 i386 libreria di utilità di sistema ii networkd-dispatcher 1.7-0ubuntu3.3 all Servizio Dispatcher per modifiche allo stato della connessione systemd-networkd ri python3-systemd 234-1build1 amd64 Collegamenti Python 3 per systemd ii systemd 237-3ubuntu10.42 amd64 system and service manager ii systemd-sysv 237- 3ubuntu10.42 sistema amd64 e gestore dei servizi - collegamenti SysV gaurav@ubuntu:~$
Se ottieni un output simile a questo, significa che sistema
è installato sul tuo sistema.
Se non è installato, puoi installarlo nel modo seguente.
sudo apt-get update
sudo apt-get install systemd
Se è installato e l'errore persiste, prova a reinstallarlo utilizzando il comando seguente.
sudo apt-get install --reinstall systemd
Questo risolverà il tuo problema installando il sistema
utilità.
Conclusione
Abbiamo imparato a correggere "systemctl: comando non trovato" in questo tutorial. Possiamo tranquillamente concludere che usando il servizio
comando invece di systemctl
è una buona idea e risolve il problema molto bene. Possiamo facilmente usare il servizio
comando dopo aver compreso gli esempi illustrativi mostrati nel tutorial.