'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 sysV
iç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.