Come correggere l'errore "Comando Systemctl non trovato" in Linux

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 SysVdentro 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.