Linux'ta "Systemctl Komutu Bulunamadı" Hatası Nasıl Onarılır

'systemctl' komutuyla sorunu çözmek için hızlı bir düzeltme ve buna bazı verimli alternatiflerin tanıtılması

sistemctl Linux ekosisteminde önemli bir yardımcı program olduğundan, çalıştırmayı denediğinizde “systemctl: command not found” hatasıyla karşılaşmanız çok yaygındır. sistemctl emretmek. Bu, Linux'un tüm dağıtımları için geçerli olmayabilir, ancak Linux dağıtımının Linux dağıtımını desteklemeyen eski bir sürümünü kullanırken bu hatayla karşılaşabilirsiniz. sistemctl emretmek.

Başınıza gelen sorun çok yaygın bir sorundur ve kolayca çözülebilir. Bu nedenle, hiç endişelenmeyin ve hızlı ve kolay bir düzeltme bulmak için tüm öğreticiyi gözden geçirin.

Önce sorunu anlamaya, sonra düzeltmeye çalışacağız.

İçgörüler sistemctl ve sistem

Hata referansla olduğu için sistemctl komut, bu hatanın düzeltmesini daha iyi anlamak için bu komutun temellerini bilmek iyi olurdu.

sistemctl Linux'un sunduğu bir komut satırı yardımcı programıdır ve ' adlı başka bir komut satırı yardımcı programını izlemek ve kontrol etmek için kullanılır.sistem'. Aynı zamanda sistem yöneticisini ' ile birlikte inceler ve kontrol eder.sistem' Yarar.

Genel sözdizimi:

systemctl [seçenek] [ad]

sistem sisteminiz açıldığında çalışan programları kontrol eden bir dizi arka plan programı, kitaplık ve yardımcı programdır. sistem sistem etkinliği günlüğü başlatmak gibi önemli bir işi de başlatmayı başarır.

Bu yardımcı program, Linux tabanlı işletim sistemlerinin tümü olmasa da çoğu için merkezi yönetim yardımcı programı olarak işlev görür.

Hatanın temel nedeni

Bu hatanın en olası nedeni, Linux dağıtımının daha eski bir sürümünü kullanmanız olabilir. Eski sürümlerin çoğu, SysV başlangıcı onun yerine sistem Yarar.

sistem yardımcı program, Linux tarafından sağlanan yardımcı program sepetine yeni eklendiği için önceki Linux sürümlerinde yoktur. sistemctl ile çalışmak ve izlemek için uyumludur. sistem yardımcı program ve aşağıdaki gibi önceki yapılandırmalarla çalışmayacak sysViçinde veya başlangıç.

kullanmıyorsanız sistem, o zaman bu hata bekleniyor. Bu kadar basit ve anlaşılır.

Bu hata ile aşağıdaki şekilde karşılaşabilirsiniz.

gaurav@ubuntu:~$ sudo systemctl start ufw [sudo] gaurav için parola: sudo: systemctl: komut bulunamadı gaurav@ubuntu:~$ 

Burada Ubuntu Güvenlik Duvarını başlatmaya çalıştık (ufw) kullanmak sistemctl komut ve “systemctl: komut bulunamadı” hatasıyla karşılaştı.

Peki, başka bir merkezi yönetim aracı kullanan mevcut Linux dağıtımınızı değiştirmek istemiyorsanız, şimdi ne yapmalısınız? sistem? Pekala, sizin için mevcut Linux dağıtımınızı korumanıza ve hatanızı hemen düzeltmenize izin verecek hızlı bir düzeltmemiz var.

Şimdi düzeltmeyi gözlemleyelim.

“systemctl: komut bulunamadı” hatasını düzeltme

Son olarak, sorunla ilgili nedenleri ve temel gerçekleri inceledikten sonra şimdi söz konusu sorunun çözümüne bakalım.

Düzeltme 1: Değiştirme sistemctl ile hizmet emretmek

Söz konusu hata için basit bir düzeltme, hizmet neden olan hata yerine komut sistemctl emretmek.

hizmet komutu çalıştırmada yardımcı olur SystemV başlangıcı eski Linux dağıtımları tarafından kullanılan komut dosyası. yüklemek istemiyorsanız, sistem sisteminizde yardımcı program varsa, bu düzeltme kesinlikle sizin için işe yarayacaktır.

Linux dağıtımınızdaki tüm hizmetleri ve arka plan programlarını aşağıdakileri kullanarak başlatabilir, yeniden başlatabilir veya durdurabilirsiniz. hizmet emretmek.

bu hizmet komut ve sistemctl komut işlevi aynı şekilde, buradaki tek fark, komutun sisteminizin zarif çalışmasından sorumlu yardımcı programlarla uyumlu olmasıdır.

görelim hizmet bir çizim ile komut.

Genel Sözdizimi:

sudo hizmeti [hizmet_adı] [eylem]

Yukarıdaki sözdiziminde, [eylem] boşluk gibi eylemler içerebilir Başlat, Dur, tekrar başlat veya durum.

başlatmak için aynı komutu çalıştıracağız. ufw kullanarak hizmet hizmet emretmek.

sudo hizmeti ufw başlangıcı

Çıktı:

gaurav@ubuntu:~$ sudo hizmeti ufw başlangıç ​​gaurav@ubuntu:~$ sudo hizmeti ufw durumu ● ufw.service - Karmaşık olmayan güvenlik duvarı Yüklendi: yüklendi (/lib/systemd/system/ufw.service; etkin; satıcı ön ayarı: etkinleştirme Etkin: aktif (çıkıldı) 2020-09-28 11:22:34 IST; 1sa 5dk önce Dokümanlar: man:ufw(8) Süreç: 333 ExecStart=/lib/ufw/ufw-init start sessiz (kod=çıkıldı, durum =0/SU Ana PID: 333 (kod=çıkıldı, durum=0/BAŞARI) 28 Eylül 11:22:34 ubuntu systemd[1]: Karmaşık olmayan güvenlik duvarı başlatıldı.Uyarı: Ünite başlatıldığından beri dergi döndürüldü.Log çıktısı eksik

burada, hizmet komutu yerine kullanılır. sistemctl komut ve kesinlikle iyi çalıştı.

Bir örnek daha görelim hizmet onu doğru bir şekilde anlamak için komut verin.

sudo hizmeti apache2 başlangıcı

Çıktı:

gaurav@ubuntu:~$ sudo service apache2 durumu ● apache2.service - Apache HTTP Sunucusu Yüklendi: yüklendi (/lib/systemd/system/apache2.service; etkin; satıcı ön ayarı: Drop-In: /lib/systemd/system/ apache2.service.d └─Apache2-systemd.conf Aktif: aktif (çalışıyor) 2020-09-28 11:22:47 IST; 1sa 16dk önce İşlem: 1172 ExecStart=/usr/sbin/apachectl start (kod= çıkıldı, durum=0/SUCCE Ana PID: 1248 (apache2) Görevler: 55 (sınır: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─1249 /usr/ sbin/apache2 -k start └─1250 /usr/sbin/apache2 -k start 28 Eylül 11:22:43 ubuntu systemd[1]: Apache HTTP Sunucusunu Başlatma... 28 Eylül 11:22:47 ubuntu apachectl[1172 ]: AH00112: Uyarı: DocumentRoot [/var/www 28 Eylül 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: 28 Eylül 11:22:47 ubuntu systemd[1]: Apache HTTP Başlatıldı Sunucu. gaurav@ubuntu:~$ 

biz kullandık hizmet apache2 yardımcı programını başlatma komutu. Kullanmak durum seçeneği ile hizmet komutu, hizmetin mevcut durumunu gösterecektir. Çalışıyor mu yoksa ölü mü (etkin değil) ayrıntılarını alacağız.

Şimdi kullanalım Dur kullanarak apache2 hizmetini durdurmak için eylem hizmet emretmek.

gaurav@ubuntu:~$ sudo hizmeti apache2'yi durdur gaurav@ubuntu:~$ sudo hizmeti apache2 durum satırları 1--1...atlıyor... ● apache2.service - Apache HTTP Sunucusu Yüklendi: yüklendi (/lib/systemd/ system/apache2.service; etkin; satıcı ön ayarı: etkin) Giriş: /lib/systemd/system/apache2.service.d └─Apache2-systemd.conf Aktif: 2020-09-28 Mon'dan beri etkin değil (ölü) 12 :42:06 IST; 1s önce İşlem: 4928 ExecStop=/usr/sbin/apachectl stop (kod=çıkıldı, durum=0/BAŞARI) İşlem: 1172 ExecStart=/usr/sbin/apachectl start (kod=çıkıldı, durum=0/BAŞARI) Ana PID : 1248 (code=exited, status=0/SUCCESS) 28 Eylül 11:22:43 ubuntu systemd[1]: Apache HTTP Sunucusu Başlatılıyor... 28 Eylül 11:22:47 ubuntu apachectl[1172]: AH00112: Uyarı : DocumentRoot [/var/www/html] mevcut değil 28 Eylül 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: ::1 kullanılarak sunucunun tam etki alanı adı güvenilir bir şekilde belirlenemedi. 'S Eylül 28 11:22:47 ubuntu systemd[1]'i ayarlayın: Apache HTTP Sunucusunu Başlattı.

Yukarıda açıklanan ayrıntılı örneklerden, bu komutu yerine bu komutu kullanabileceğimiz sonucuna varabiliriz. sistemctl Linux dağıtımı altındaki diğer daemon'ları ve hizmetleri kontrol etme ve izleme komutu.

Düzeltme 2: Kontrol ediliyor sistem paket

Bazen durum sadece sistem paket kurulumu sorunu çözebilir. İlk olarak, kurulum durumunu kontrol etmeniz gerekir. sistem Sisteminizde paket.

Sisteminizdeki paketi kontrol etmek için aşağıdaki komutu kullanın.

sudo dpkg -l | grep sistemi

Eğer sistem yardımcı program zaten kuruluysa, aşağıda gösterilene benzer bir çıktı alırsınız.

gaurav@ubuntu:~$ sudo dpkg -l | gaurav için grep systemd [sudo] parolası: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 basit süreçler arası mesajlaşma sistemi (systemd --user entegrasyonu) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 nss modülü dinamik sağlar kullanıcı ve grup adı çözümlemesi ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 sistem ve hizmet yöneticisi - PAM modülü ii libsystemd0:amd64 237-3ubuntu10.42 amd64 systemd yardımcı program kitaplığı ii libsystemd0:i386 237-3ubuntu10.42 i386 systemd yardımcı program kitaplığı ii networkd-dispatcher 1.7-0ubuntu3.3 systemd-networkd bağlantı durumu değişiklikleri için tüm Dispatcher hizmeti ri python3-systemd 234-1build1 amd64 systemd ii systemd için Python 3 bağlamaları 237-3ubuntu10.42 amd64 sistem ve hizmet yöneticisi ii systemd-sysv 237- 3ubuntu10.42 amd64 sistem ve hizmet yöneticisi - SysV bağlantıları gaurav@ubuntu:~$ 

Buna benzer bir çıktı alırsanız, bunun anlamı şudur: sistem sisteminizde kuruludur.

Kurulu değilse aşağıdaki şekilde kurabilirsiniz.

sudo apt-get güncellemesi
sudo apt-get install systemd

Yüklüyse ve hata devam ederse, aşağıdaki komutu kullanarak yeniden yüklemeyi deneyin.

sudo apt-get install -- systemd'yi yeniden yükleyin

Bu, yükleyerek sorununuzu çözecektir. sistem Yarar.

Çözüm

Bu eğitimde “systemctl: komut bulunamadı” sorununu düzeltmeyi öğrendik. kullanmanın güvenli olduğu sonucuna varabiliriz. hizmet komut yerine sistemctl iyi bir fikirdir ve sorunu çok iyi çözer. rahatlıkla kullanabiliriz hizmet öğreticide gösterilen açıklayıcı örnekleri anladıktan sonra komut verin.