Kā novērst kļūdu "Systemctl komanda nav atrasta" operētājsistēmā Linux

Ātrs risinājums, lai atrisinātu problēmu, izmantojot komandu “systemctl”, un ieviešot dažas efektīvas alternatīvas tai

systemctl Tā kā Linux ekosistēmā ir svarīga utilīta, ļoti bieži var rasties kļūda “systemctl: komanda nav atrasta”, mēģinot palaist systemctl komandu. Tas var neattiekties uz visiem Linux izplatījumiem, taču jūs, iespējams, varat saskarties ar šo kļūdu, ja izmantojat vecāku Linux izplatīšanas versiju, kas neatbalsta systemctl komandu.

Problēma, kas rodas jums, ir ļoti izplatīta problēma, un to var viegli novērst. Tāpēc neuztraucieties un vienkārši izejiet visu pamācību, lai atrastu ātru un vienkāršu risinājumu.

Vispirms mēģināsim izprast problēmu un pēc tam to novērst.

Ieskati par systemctl un systemd

Tā kā kļūda ir saistīta ar atsauci uz systemctl komandu, būtu labi zināt šīs komandas pamatus, lai labāk izprastu šīs kļūdas labojumu.

systemctl ir Linux piedāvātā komandrindas utilīta, ko izmanto, lai uzraudzītu un kontrolētu vienu citu komandrindas utilītu ar nosaukumu "systemd‘. Tā arī pārbauda un kontrolē sistēmas pārvaldnieku kopā ar "systemd‘lietderība.

Vispārējā sintakse:

systemctl [opcija] [nosaukums]

systemd ir dēmonu, bibliotēku un utilītu kopums, kas kontrolē programmas, kas darbojas, kad sistēma sāk darboties. systemd izdodas arī uzsākt svarīgu darbu, piemēram, sākt sistēmas darbību žurnālu.

Šī utilīta darbojas kā centrālā pārvaldības utilīta lielākajai daļai, ja ne visām Linux balstītajām operētājsistēmām.

Kļūdas galvenais cēlonis

Visticamākais šīs kļūdas iemesls varētu būt tas, ka izmantojat vecāku Linux izplatīšanas versiju. Daudzas no vecākajām versijām izmanto SysV init vietā systemd lietderība.

systemd utilīta iepriekšējās Linux versijās nav pieejama, jo tā ir nesens Linux nodrošinātā utilītu groza papildinājums. systemctl ir savietojams, lai darbotos un uzraudzītu ar systemd utilīta un nedarbosies ar iepriekšējām konfigurācijām, piemēram, SysVtajā vai Iesācējs.

Ja jūs neizmantojat systemd, tad šī kļūda ir sagaidāma. Tas ir tikpat vienkārši un saprotami.

Ar šo kļūdu varat saskarties tālāk norādītajā veidā.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] parole gaurav: sudo: systemctl: komanda nav atrasta gaurav@ubuntu:~$ 

Šeit mēs mēģinājām palaist Ubuntu ugunsmūri (ufw) izmantojot systemctl komandu un radās kļūda “systemctl: komanda nav atrasta”.

Tātad, ko darīt tagad, ja nevēlaties mainīt savu pašreizējo Linux izplatīšanu, kas izmanto kādu citu centrālās pārvaldības utilītu, izņemot systemd? Mums ir ātrs risinājums, kas ļautu jums saglabāt pašreizējo Linux izplatīšanu, kā arī ātri novērst kļūdu.

Novērosim labojumu tagad.

Kļūdas “systemctl: komanda nav atrasta” labošana

Visbeidzot, apskatīsim attiecīgās problēmas risinājumu pēc problēmas cēloņu un pamatfaktu analīzes.

1. labojums: nomaiņa systemctl ar apkalpošana komandu

Vienkāršs attiecīgās kļūdas labojums ir izmantot apkalpošana komandu, nevis kļūdas cēloni systemctl komandu.

apkalpošana komanda palīdz palaist SystemV init skripts, ko izmanto vecāki Linux izplatījumi. Ja nevēlaties instalēt systemd utilīta jūsu sistēmā, šis labojums noteikti noderēs jums.

Varat sākt, restartēt vai apturēt jebkurus pakalpojumus un dēmonus savā Linux izplatīšanā, izmantojot apkalpošana komandu.

The apkalpošana komandu un systemctl komandu funkciju tādā pašā veidā, vienīgā atšķirība šeit ir komandas saderība ar utilītprogrammām, kas ir atbildīgas par jūsu sistēmas graciozu darbību.

Ļaujiet mums redzēt apkalpošana komanda ar ilustrāciju.

Vispārējā sintakse:

sudo pakalpojums [pakalpojuma_nosaukums] [darbība]

Iepriekš minētajā sintaksē [darbība] vieta var ietvert tādas darbības kā sākt, stop, restartēt vai statusu.

Mēs izpildīsim to pašu komandu, lai sāktu ufw pakalpojumu, izmantojot apkalpošana komandu.

sudo pakalpojums ufw start

Izvade:

gaurav@ubuntu:~$ sudo service ufw start gaurav@ubuntu:~$ sudo service ufw status ● ufw.service — nesarežģīts ugunsmūris Ielādēts: ielādēts (/lib/systemd/system/ufw.service; iespējots; piegādātāja iepriekš iestatīts: enab Active: aktīvs (iziets) kopš pirmdienas 2020-09-28 11:22:34 IST; pirms 1h 5min Dokumenti: man:ufw(8) Process: 333 ExecStart=/lib/ufw/ufw-init start kluss (kods=exited, status =0/SU Galvenais PID: 333 (kods=exited, status=0/SUCCESS) Sep 28 11:22:34 ubuntu systemd[1]: Started Nesarežģīts ugunsmūris. Brīdinājums: žurnāls ir pagriezts kopš ierīces palaišanas. Žurnāla izvade ir nepilnīgs

Lūk, apkalpošana vietā tiek izmantota komanda systemctl komandu, un tas izdevās pilnīgi labi.

Apskatīsim vēl vienu piemēru apkalpošana komandu, lai iegūtu pareizu izpratni par to.

sudo pakalpojuma apache2 sākums

Izvade:

gaurav@ubuntu:~$ sudo service apache2 statuss ● apache2.service — Apache HTTP serveris ielādēts: ielādēts (/lib/systemd/system/apache2.service; iespējots; piegādātāja iepriekš iestatīts: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktīvs: aktīvs (darbojas) kopš pirmdienas 2020-09-28 11:22:47 IST; pirms 1h 16min Process: 1172 ExecStart=/usr/sbin/apachectl start (kods= iziets, status=0/SUCCE Galvenais PID: 1248 (apache2) Uzdevumi: 55 (ierobežojums: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─r1249 sbin/apache2 -k sākuma ]: AH00112: Brīdinājums: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nevarēja droši noteikt Sep 28 11:22:47 ubuntu systemd[ Apache Serveris gaurav@ubuntu:~$ 

Mēs esam izmantojuši apkalpošana komandu, lai palaistu apache2 utilītu. Izmantojot statusu opcija ar apkalpošana komanda parādīs pakalpojuma pašreizējo statusu. Mēs saņemsim informāciju par to, vai tas darbojas vai ir miris (neaktīvs).

Ļaujiet mums tagad izmantot stop darbība, lai apturētu apache2 pakalpojumu, izmantojot apkalpošana komandu.

gaurav@ubuntu:~$ sudo pakalpojuma apache2 apstāšanās gaurav@ubuntu:~$ sudo pakalpojuma apache2 statusa rindas 1--1...izlaižot... ● apache2.service — Apache HTTP serveris ielādēts: ielādēts (/lib/systemd/ system/apache2.service; iespējots; piegādātāja sākotnējais iestatījums: iespējots) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktīvs: neaktīvs (miris) kopš 2020. gada 28. gada 28. pirm. 12. :42:06 IST; Pirms 1 s Process: 4928 ExecStop=/usr/sbin/apachectl stop (kods=exited, status=0/SUCCESS) Process: 1172 ExecStart=/usr/sbin/apachectl start (kods=exited, status=0/SUCCESS) Galvenais PID : 1248 (kods=exited, status=0/SUCCESS) Sep 28 11:22:43 ubuntu systemd[1]: tiek startēts Apache HTTP serveris... 28.septembris 11:22:47 ubuntu apachectl[1172]: AH00112: Brīdinājums : DocumentRoot [/var/www/html] neeksistē Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Nevarēja droši noteikt servera pilnībā kvalificēto domēna nosaukumu, izmantojot ::1. Iestatīt 'S Sep 28 11:22:47 ubuntu systemd[1]: Started The Apache HTTP Server.

No iepriekš izskaidrotajiem detalizētajiem piemēriem mēs varam secināt, ka mēs varam izmantot šo komandu, nevis systemctl komanda, lai kontrolētu un pārraudzītu citus dēmonus un pakalpojumus Linux izplatīšanā.

2. labojums: tiek pārbaudīts systemd iepakojums

Dažkārt var gadīties, ka tikai systemd pakotnes instalēšana var atrisināt problēmu. Pirmkārt, jums jāpārbauda instalēšanas statuss systemd pakotni jūsu sistēmā.

Izmantojiet šo komandu, lai pārbaudītu pakotni savā sistēmā.

sudo dpkg -l | grep systemd

Ja systemd utilītprogramma jau ir instalēta, jūs iegūsit izvadi, kas ir līdzīga kā parādīts zemāk.

gaurav@ubuntu:~$ sudo dpkg -l | grep systemd [sudo] parole gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 vienkārša starpprocesu ziņojumapmaiņas sistēma (systemd --user integrācija) ii libnss-systemd:amd64 237-3ubuntu10.42n dynamicsd6e modulis lietotāja un grupas nosaukuma izšķirtspēja ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 sistēmas un pakalpojumu pārvaldnieks — PAM modulis ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd utilītu bibliotēka ii libpam-systemd:amd64 2tubintu10.46 system2unsystem2. ii networkd-dispatcher 1.7-0ubuntu3.3 all Dispečera pakalpojums systemd-networkd savienojuma statusa izmaiņām ri python3-systemd 234-1build1 amd64 Python 3 saistījumi systemd ii systemd 237-3ubuntu10.42 amd64 sistēmai un 3-sysi4 sistēmai 2 3ubuntu10.42 amd64 sistēmas un pakalpojumu pārvaldnieks — SysV saites gaurav@ubuntu:~$ 

Ja saņemat līdzīgu izvadi, tas nozīmē, ka systemd ir instalēts jūsu sistēmā.

Ja tas nav instalēts, varat to instalēt tālāk norādītajā veidā.

sudo apt-get atjauninājums
sudo apt-get install systemd

Ja tas ir instalēts un kļūda joprojām pastāv, mēģiniet to atkārtoti instalēt, izmantojot šo komandu.

sudo apt-get install --reinstall systemd

Tas atrisinās jūsu problēmu, instalējot systemd lietderība.

Secinājums

Šajā apmācībā mēs iemācījāmies labot komandu “systemctl: komanda nav atrasta”. Mēs varam droši secināt, ka, izmantojot apkalpošana komandu, nevis systemctl ir laba ideja un ļoti labi atrisina problēmu. Mēs varam viegli izmantot apkalpošana komandu pēc apmācībā parādīto ilustratīvo piemēru izpratnes.