Πώς να διορθώσετε το σφάλμα "Systemctl Command Not Found" στο Linux

Μια γρήγορη λύση για την επίλυση του προβλήματος με την εντολή «systemctl» και εισαγωγή ορισμένων αποτελεσματικών εναλλακτικών σε αυτήν

systemctl ως ένα σημαντικό βοηθητικό πρόγραμμα στο οικοσύστημα Linux, είναι πολύ συνηθισμένο να αντιμετωπίσετε ένα πρόβλημα σφάλματος "systemctl: εντολή δεν βρέθηκε" όταν προσπαθείτε να εκτελέσετε το systemctl εντολή. Αυτό μπορεί να μην ισχύει για όλες τις διανομές του Linux, αλλά πιθανότατα μπορείτε να αντιμετωπίσετε αυτό το σφάλμα όταν χρησιμοποιείτε μια παλαιότερη έκδοση της διανομής Linux που δεν υποστηρίζει systemctl εντολή.

Το πρόβλημα που παρουσιάζεται είναι ένα πολύ κοινό ζήτημα και μπορεί εύκολα να επιλυθεί. Επομένως, μην ανησυχείτε καθόλου και απλώς περάστε από το πλήρες σεμινάριο για να βρείτε μια γρήγορη και εύκολη λύση.

Θα προσπαθήσουμε πρώτα να κατανοήσουμε το πρόβλημα και μετά να το διορθώσουμε.

Πληροφορίες για systemctl και systemd

Καθώς το σφάλμα είναι σε σχέση με το systemctl εντολή, θα ήταν καλό να γνωρίζετε τα βασικά αυτής της εντολής για να κατανοήσετε καλύτερα την επιδιόρθωση αυτού του σφάλματος.

systemctl είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που προσφέρει το Linux, το οποίο χρησιμοποιείται για την παρακολούθηση και τον έλεγχο ενός άλλου βοηθητικού προγράμματος γραμμής εντολών που ονομάζεται "systemd‘. Επίσης, επιθεωρεί και ελέγχει τον διαχειριστή συστήματος μαζί με το «systemd« χρησιμότητα.

Γενική σύνταξη:

systemctl [επιλογή] [όνομα]

systemd είναι μια δέσμη δαιμόνων, βιβλιοθηκών και βοηθητικών προγραμμάτων που ελέγχει τα προγράμματα που εκτελούνται κατά την εκκίνηση του συστήματός σας. systemd καταφέρνει επίσης να ξεκινήσει μια σημαντική δουλειά όπως η έναρξη ενός περιοδικού δραστηριότητας συστήματος.

Αυτό το βοηθητικό πρόγραμμα λειτουργεί ως το κεντρικό βοηθητικό πρόγραμμα διαχείρισης για τα περισσότερα αν όχι όλα τα λειτουργικά συστήματα που βασίζονται σε Linux.

Βασική αιτία του σφάλματος

Η πιο πιθανή αιτία για αυτό το σφάλμα μπορεί να είναι ότι χρησιμοποιείτε μια παλαιότερη έκδοση της διανομής Linux. Πολλές από τις παλαιότερες εκδόσεις χρησιμοποιούν το Αρχή SysV αντί του systemd χρησιμότητα.

systemd Το βοηθητικό πρόγραμμα απουσιάζει στις προηγούμενες εκδόσεις Linux, καθώς είναι μια πρόσφατη προσθήκη στο καλάθι των βοηθητικών προγραμμάτων που παρέχονται από το Linux. systemctl είναι συμβατό για λειτουργία και παρακολούθηση με το systemd βοηθητικό πρόγραμμα και θα αποτύχει να λειτουργήσει με τις προηγούμενες διαμορφώσεις όπως SysVμέσα σε αυτό ή Νεόπλουτος.

Εάν δεν χρησιμοποιείτε systemd, τότε αυτό το σφάλμα είναι αναμενόμενο. Είναι τόσο απλό και απλό.

Μπορεί να αντιμετωπίσετε αυτό το σφάλμα με τον ακόλουθο τρόπο.

gaurav@ubuntu:~$ sudo systemctl έναρξη ufw [sudo] κωδικός πρόσβασης για gaurav: sudo: systemctl: η εντολή δεν βρέθηκε gaurav@ubuntu:~$ 

Εδώ, προσπαθήσαμε να ξεκινήσουμε το Ubuntu Fire Wall (ufw) χρησιμοποιώντας το systemctl εντολή και αντιμετώπισε το σφάλμα "systemctl: η εντολή δεν βρέθηκε".

Λοιπόν, τι να κάνετε τώρα εάν δεν θέλετε να αλλάξετε την τρέχουσα διανομή Linux που χρησιμοποιεί κάποιο άλλο βοηθητικό πρόγραμμα κεντρικής διαχείρισης εκτός από systemd? Λοιπόν, έχουμε μια γρήγορη λύση για εσάς που θα σας επιτρέψει να διατηρήσετε την τρέχουσα διανομή Linux καθώς και να διορθώσετε το σφάλμα σας σε χρόνο μηδέν.

Ας παρατηρήσουμε τη διόρθωση τώρα.

Διόρθωση σφάλματος "systemctl: η εντολή δεν βρέθηκε".

Τέλος, ας δούμε τώρα τη λύση του εν λόγω προβλήματος αφού αναλύσουμε τις αιτίες και τα βασικά στοιχεία για το πρόβλημα.

Διόρθωση 1: Αντικατάσταση systemctl με υπηρεσία εντολή

Μια απλή λύση για το εν λόγω σφάλμα είναι να χρησιμοποιήσετε το υπηρεσία εντολή αντί για το σφάλμα που προκαλεί systemctl εντολή.

υπηρεσία η εντολή βοηθά στην εκτέλεση του Σύστημα V init script που χρησιμοποιείται από τις παλαιότερες διανομές Linux. Εάν δεν επιθυμείτε να εγκαταστήσετε το systemd βοηθητικό πρόγραμμα στο σύστημά σας, αυτή η επιδιόρθωση σίγουρα θα λειτουργήσει για εσάς.

Μπορείτε να ξεκινήσετε, να επανεκκινήσετε ή να σταματήσετε οποιεσδήποτε υπηρεσίες και δαίμονες στη διανομή Linux σας χρησιμοποιώντας το υπηρεσία εντολή.

ο υπηρεσία εντολή και το systemctl η εντολή λειτουργεί με τον ίδιο τρόπο, η μόνη διαφορά εδώ είναι η συμβατότητα της εντολής με τα βοηθητικά προγράμματα που είναι υπεύθυνα για τη χαριτωμένη λειτουργία του συστήματός σας.

Ας δούμε το υπηρεσία εντολή με μια απεικόνιση.

Γενική Σύνταξη:

υπηρεσία sudo [όνομα_υπηρεσίας] [δράση]

Στην παραπάνω σύνταξη, το [δράση] ο χώρος μπορεί να περιλαμβάνει ενέργειες όπως αρχή, να σταματήσει, επανεκκίνηση ή κατάσταση.

Θα εκτελέσουμε την ίδια εντολή για να ξεκινήσουμε το ufw υπηρεσία χρησιμοποιώντας το υπηρεσία εντολή.

υπηρεσία sudo ufw start

Παραγωγή:

gaurav@ubuntu:~$ υπηρεσία sudo ufw start gaurav@ubuntu:~$ υπηρεσία sudo κατάσταση ufw ● ufw.service - Μη περίπλοκο τείχος προστασίας Φορτώθηκε: φορτώθηκε (/lib/systemd/system/ufw.service; ενεργοποιημένο; προκαθορισμένος προμηθευτής: enab Ενεργό: ενεργό (έξοδος) από Δευτ. 28-09-2020 11:22:34 IST· 1 ώρα και 5 λεπτά πριν Έγγραφα: man:ufw(8) Διαδικασία: 333 ExecStart=/lib/ufw/ufw-init έναρξη αθόρυβη (code=exited, status =0/SU Κύριο PID: 333 (code=exited, status=0/SUCCESS) Sep 28 11:22:34 ubuntu systemd[1]: Started Uncomplicated firewall. Προειδοποίηση: Το ημερολόγιο έχει περιστραφεί από τότε που ξεκίνησε η μονάδα. Η έξοδος καταγραφής είναι ελλιπής

Εδώ, το υπηρεσία χρησιμοποιείται η εντολή αντί για το systemctl εντολή και λειτούργησε πολύ καλά.

Ας δούμε ένα ακόμη παράδειγμα του υπηρεσία εντολή για να γίνει σωστή κατανόηση του.

έναρξη υπηρεσίας sudo apache2

Παραγωγή:

gaurav@ubuntu:~$ κατάσταση υπηρεσίας sudo apache2 ● apache2.service - Ο διακομιστής HTTP Apache Φορτώθηκε: φορτώθηκε (/lib/systemd/system/apache2.service; ενεργοποιημένο; προκαθορισμένος προμηθευτής: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Ενεργό: ενεργό (σε λειτουργία) από Δευτ. 28-09-2020 11:22:47 IST· 1 ώρα και 16 λεπτά πριν Διαδικασία: 1172 ExecStart=/usr/sbin/apachectl startco (de exited, status=0/SUCCE Κύριο PID: 1248 (apache2) Εργασίες: 55 (όριο: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├49/us1 sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28 Σεπτεμβρίου 11:22:43 ubuntu systemd[1]: Εκκίνηση του διακομιστή HTTP Apache... 28 Σεπτεμβρίου 11:22:47 ubuntu apachectl[117 ]: AH00112: Προειδοποίηση: DocumentRoot [/var/www 28 Σεπτεμβρίου 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Δεν ήταν δυνατός ο αξιόπιστος προσδιορισμός 28 Σεπτεμβρίου 11:22:47 HTTP Systemd[1] Διακομιστής gaurav@ubuntu:~$ 

Έχουμε χρησιμοποιήσει το υπηρεσία εντολή για την εκκίνηση του βοηθητικού προγράμματος apache2. Χρησιμοποιώντας το κατάσταση επιλογή με το υπηρεσία Η εντολή θα εμφανίσει την τρέχουσα κατάσταση της υπηρεσίας. Θα λάβουμε τις λεπτομέρειες εάν εκτελείται ή είναι νεκρό (ανενεργό).

Ας χρησιμοποιήσουμε τώρα το να σταματήσει ενέργεια για διακοπή της υπηρεσίας apache2 χρησιμοποιώντας το υπηρεσία εντολή.

gaurav@ubuntu:~$ υπηρεσία sudo apache2 stop gaurav@ubuntu:~$ υπηρεσία sudo apache2 γραμμές κατάστασης 1--1...παράβλεψη... ● apache2.service - Ο διακομιστής HTTP Apache Φορτώθηκε: φορτώθηκε (/lib/systemd/ system/apache2.service; ενεργοποιημένο; προκαθορισμένος προμηθευτής: ενεργοποιημένο) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Ενεργό: ανενεργό (νεκρό) από Δευτ. 28-09-2020 12 :42:06 IST; Πριν από 1 δευτ. Διεργασία: 4928 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Διαδικασία: 1172 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Κύριο PID : 1248 (code=exited, status=0/SUCCESS) Σεπ 28 11:22:43 ubuntu systemd[1]: Εκκίνηση του διακομιστή HTTP Apache... 28 Σεπτεμβρίου 11:22:47 ubuntu apachectl[1172]: AH00112: Προειδοποίηση : Το DocumentRoot [/var/www/html] δεν υπάρχει 28 Σεπτεμβρίου 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Δεν ήταν δυνατός ο αξιόπιστος προσδιορισμός του πλήρως αναγνωρισμένου ονόματος τομέα του διακομιστή, χρησιμοποιώντας ::1. Ρύθμιση του 'S Sep 28 11:22:47 ubuntu systemd[1]: Ξεκίνησε ο διακομιστής HTTP Apache.

Από τα λεπτομερή παραδείγματα που εξηγήθηκαν παραπάνω, μπορούμε να συμπεράνουμε ότι μπορούμε να χρησιμοποιήσουμε αυτήν την εντολή αντί για το systemctl εντολή ελέγχου και παρακολούθησης άλλων δαίμονων και υπηρεσιών υπό τη διανομή Linux.

Διόρθωση 2: Έλεγχος για systemd πακέτο

Κάποτε μπορεί να συμβαίνει μόνο το systemd Η εγκατάσταση του πακέτου μπορεί να διορθώσει το πρόβλημα. Πρώτα, πρέπει να ελέγξετε την κατάσταση εγκατάστασης του systemd πακέτο στο σύστημά σας.

Χρησιμοποιήστε την ακόλουθη εντολή για να ελέγξετε το πακέτο στο σύστημά σας.

sudo dpkg -l | grep systemd

Αν το systemd Το βοηθητικό πρόγραμμα είναι ήδη εγκατεστημένο, θα λάβετε μια έξοδο παρόμοια όπως φαίνεται παρακάτω.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] κωδικός πρόσβασης για gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 απλό σύστημα ανταλλαγής μηνυμάτων διαδικασιών (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42 amd6 Ανάλυση ονόματος χρήστη και ομάδας ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 διαχειριστής συστήματος και υπηρεσιών - ενότητα PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 βιβλιοθήκη βοηθητικού συστήματος systemd ii libsystemd0:i73834 ii networkd-dispatcher 1.7-0ubuntu3.3 all Service Dispatcher για αλλαγές κατάστασης σύνδεσης systemd-networkd ri python3-systemd 234-1build1 amd64 Python 3 bindings for systemd ii systemd 237-3ubuntu10.42 amd64 system and service manager ii 3ubuntu10.42 amd64 διαχειριστής συστήματος και υπηρεσιών - Σύνδεσμοι SysV gaurav@ubuntu:~$ 

Εάν έχετε μια έξοδο παρόμοια με αυτήν, σημαίνει ότι systemd είναι εγκατεστημένο στο σύστημά σας.

Εάν δεν είναι εγκατεστημένο, μπορείτε να το εγκαταστήσετε με τον ακόλουθο τρόπο.

ενημέρωση sudo apt-get
sudo apt-get install systemd

Εάν είναι εγκατεστημένο και το σφάλμα παραμένει, δοκιμάστε να το εγκαταστήσετε ξανά χρησιμοποιώντας την ακόλουθη εντολή.

sudo apt-get install -- επανεγκαταστήστε το systemd

Αυτό θα λύσει το πρόβλημά σας εγκαθιστώντας το systemd χρησιμότητα.

συμπέρασμα

Μάθαμε να διορθώνουμε το "systemctl: η εντολή δεν βρέθηκε" σε αυτό το σεμινάριο. Μπορούμε με ασφάλεια να συμπεράνουμε ότι χρησιμοποιώντας το υπηρεσία εντολή αντί για το systemctl είναι καλή ιδέα και λύνει το πρόβλημα πολύ καλά. Μπορούμε εύκολα να χρησιμοποιήσουμε το υπηρεσία εντολή μετά την κατανόηση των επεξηγηματικών παραδειγμάτων που εμφανίζονται στο σεμινάριο.

Κατηγορία: Linux