Penyelesaian pantas untuk menyelesaikan isu dengan arahan 'systemctl' dan pengenalan beberapa alternatif yang cekap untuknya
systemctl
sebagai utiliti penting dalam ekosistem Linux, adalah perkara biasa yang anda mungkin menghadapi masalah ralat "systemctl: command not found" apabila anda cuba menjalankan systemctl
perintah. Ini mungkin tidak berlaku untuk semua pengedaran Linux, tetapi anda mungkin menghadapi ralat ini apabila anda menggunakan versi lama pengedaran Linux yang tidak menyokong systemctl
perintah.
Masalah yang berlaku kepada anda adalah isu yang sangat biasa dan boleh diselesaikan dengan mudah. Jadi, jangan risau sama sekali dan ikuti tutorial lengkap untuk mencari penyelesaian yang cepat dan mudah.
Kami akan cuba memahami masalah itu dahulu dan kemudian membetulkannya.
Insights into systemctl
dan sistemd
Oleh kerana ralat adalah dengan merujuk kepada systemctl
arahan, adalah baik untuk mengetahui asas arahan ini untuk memahami pembetulan untuk ralat ini dengan lebih baik.
systemctl
ialah utiliti baris perintah yang ditawarkan Linux, yang digunakan untuk memantau dan mengawal satu utiliti baris arahan lain bernama 'sistemd
'. Ia juga memeriksa dan mengawal pengurus sistem bersama-sama dengan 'sistemd
' utiliti.
Sintaks umum:
systemctl [pilihan] [nama]
sistemd
ialah sekumpulan daemon, perpustakaan dan utiliti yang mengawal atur cara yang dijalankan apabila sistem anda but. sistemd
juga berjaya memulakan kerja penting seperti memulakan jurnal aktiviti sistem.
Utiliti ini berfungsi sebagai utiliti pengurusan pusat untuk kebanyakan jika tidak semua sistem pengendalian berasaskan Linux.
Punca ralat
Punca yang paling mungkin untuk ralat ini mungkin kerana anda menggunakan versi lama pengedaran Linux. Kebanyakan versi lama menggunakan SysV init
bukannya sistemd
utiliti.
sistemd
utiliti tiada dalam versi Linux sebelumnya kerana ia merupakan tambahan terbaru kepada bakul utiliti yang disediakan oleh Linux. systemctl
adalah serasi untuk berfungsi dan memantau dengan sistemd
utiliti dan akan gagal berfungsi dengan konfigurasi sebelumnya seperti SysV
di dalamnya
atau Mulakan
.
Jika anda tidak menggunakan sistemd
, maka ralat ini dijangkakan. Ia semudah dan semudah itu.
Anda mungkin menghadapi ralat ini dengan cara berikut.
gaurav@ubuntu:~$ sudo systemctl mulakan kata laluan ufw [sudo] untuk gaurav: sudo: systemctl: arahan tidak dijumpai gaurav@ubuntu:~$
Di sini, kami cuba memulakan Tembok Api Ubuntu (ufw
) menggunakan systemctl
arahan dan menemui ralat "systemctl: command not found".
Jadi, apa yang perlu dilakukan sekarang jika anda tidak mahu menukar pengedaran Linux semasa anda yang menggunakan beberapa utiliti pengurusan pusat lain selain daripada sistemd
? Nah, kami mempunyai penyelesaian pantas untuk anda yang membolehkan anda mengekalkan pengedaran Linux semasa anda serta membetulkan ralat anda dalam masa yang singkat.
Mari kita perhatikan pembaikan sekarang.
Membetulkan ralat "systemctl: command not found".
Akhir sekali, mari kita lihat penyelesaian masalah yang dipersoalkan selepas menganalisis punca dan fakta asas tentang masalah tersebut.
Betulkan 1: Menggantikan systemctl
dengan perkhidmatan
perintah
Pembetulan mudah untuk ralat yang dipersoalkan adalah dengan menggunakan perkhidmatan
arahan dan bukannya ralat yang menyebabkan systemctl
perintah.
perkhidmatan
arahan membantu dalam menjalankan SystemV init
skrip yang digunakan oleh pengedaran Linux yang lebih lama. Jika anda tidak mahu memasang sistemd
utiliti pada sistem anda, pembaikan ini pasti akan berfungsi untuk anda.
Anda boleh memulakan, memulakan semula atau menghentikan sebarang perkhidmatan dan daemon pada pengedaran Linux anda menggunakan perkhidmatan
perintah.
The perkhidmatan
perintah dan systemctl
fungsi arahan dengan cara yang sama, satu-satunya perbezaan di sini ialah keserasian arahan dengan utiliti yang bertanggungjawab untuk menjalankan sistem anda dengan anggun.
Mari kita lihat perkhidmatan
arahan dengan ilustrasi.
Sintaks Umum:
perkhidmatan sudo [nama_perkhidmatan] [tindakan]
Dalam sintaks di atas, the [tindakan]
ruang mungkin termasuk tindakan seperti mulakan
, berhenti
, mula semula
atau status
.
Kami akan menjalankan arahan yang sama untuk memulakan ufw
perkhidmatan menggunakan perkhidmatan
perintah.
perkhidmatan sudo ufw mula
Pengeluaran:
gaurav@ubuntu:~$ sudo service ufw mula gaurav@ubuntu:~$ sudo service ufw status ● ufw.service - Firewall tidak rumit Dimuatkan: dimuatkan (/lib/systemd/system/ufw.service; enabled; vendor preset: enab Active: aktif (keluar) sejak Isn 28-09-2020 11:22:34 IST; 1j 5minit lalu Dokumen: man:ufw(8) Proses: 333 ExecStart=/lib/ufw/ufw-init mula senyap (kod=keluar, status =0/SU PID Utama: 333 (kod=keluar, status=0/SUCCESS) 28 Sep 11:22:34 ubuntu systemd[1]: Dimulakan Firewall tidak rumit. Amaran: Jurnal telah diputar sejak unit dimulakan. Output log ialah tidak lengkap
Di sini, yang perkhidmatan
arahan digunakan bukannya systemctl
perintah dan ia berfungsi dengan baik.
Mari kita lihat satu lagi contoh perkhidmatan
perintah untuk mendapatkan pemahaman yang betul mengenainya.
perkhidmatan sudo bermula apache2
Pengeluaran:
gaurav@ubuntu:~$ sudo service apache2 status ● apache2.service - Apache HTTP Server Loaded: dimuatkan (/lib/systemd/system/apache2.service; enabled; vendor preset: Drop-In: /lib/systemd/system/ apache2.service.d └─apache2-systemd.conf Aktif: aktif (berjalan) sejak Isn 2020-09-28 11:22:47 IST; 1j 16minit lalu Proses: 1172 ExecStart=/usr/sbin/apachectl mula (kod= keluar, status=0/SUCCE PID Utama: 1248 (apache2) Tugasan: 55 (had: 4456) CGroup: /system.slice/apache2.service ├─1248 /usr/sbin/apache2 -k start ├─1249 /usr/ sbin/apache2 -k mula └─1250 /usr/sbin/apache2 -k mula 28 Sep 11:22:43 ubuntu systemd[1]: Memulakan Pelayan HTTP Apache... 28 Sep 11:22:47 ubuntu apachectl[1172] ]: AH00112: Amaran: DocumentRoot [/var/www Sep 28 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Tidak boleh dipercayai det Sep 28 11:22:47 ubuntu Apache Mulakan sistemd[1]: Pelayan gaurav@ubuntu:~$
Kami telah menggunakan perkhidmatan
arahan untuk memulakan utiliti apache2. Menggunakan status
pilihan dengan perkhidmatan
arahan akan memaparkan status semasa perkhidmatan. Kami akan mendapat butiran sama ada ia sedang berjalan atau sudah mati (tidak aktif).
Marilah kita sekarang menggunakan berhenti
tindakan untuk menghentikan perkhidmatan apache2 menggunakan perkhidmatan
perintah.
gaurav@ubuntu:~$ sudo service apache2 stop gaurav@ubuntu:~$ sudo service apache2 baris status 1--1...langkau... ● apache2.service - Pelayan HTTP Apache Dimuatkan: dimuatkan (/lib/systemd/ system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Aktif: tidak aktif (mati) sejak Isn 2020-09-28 12 :42:06 IST; 1s yang lalu Proses: 4928 ExecStop=/usr/sbin/apachectl stop (kod=keluar, status=0/SUCCESS) Proses: 1172 ExecStart=/usr/sbin/apachectl start (kod=keluar, status=0/SUCCESS) PID Utama : 1248 (kod=keluar, status=0/SUCCESS) 28 Sep 11:22:43 ubuntu systemd[1]: Memulakan Pelayan HTTP Apache... 28 Sep 11:22:47 ubuntu apachectl[1172]: AH00112: Amaran : DocumentRoot [/var/www/html] tidak wujud 28 Sep 11:22:47 ubuntu apachectl[1172]: AH00558: apache2: Tidak dapat menentukan nama domain yang layak sepenuhnya pelayan, menggunakan ::1. Tetapkan 'S 28 Sep 11:22:47 ubuntu systemd[1]: Memulakan Pelayan HTTP Apache.
Daripada contoh terperinci yang dijelaskan di atas, kita boleh menyimpulkan bahawa kita boleh menggunakan arahan ini dan bukannya perintah systemctl
arahan untuk mengawal dan memantau daemon dan perkhidmatan lain di bawah pengedaran Linux.
Betulkan 2: Menyemak sistemd
pakej
Kadang-kadang ia mungkin berlaku bahawa hanya sistemd
pemasangan pakej boleh membetulkan masalah. Pertama, anda perlu menyemak status pemasangan sistemd
pakej pada sistem anda.
Gunakan arahan berikut untuk menyemak pakej pada sistem anda.
sudo dpkg -l | grep systemd
Sekiranya sistemd
utilty sudah dipasang anda akan mendapat output yang serupa seperti yang ditunjukkan di bawah.
gaurav@ubuntu:~$ sudo dpkg -l | kata laluan grep systemd [sudo] untuk gaurav: ii dbus-user-session 1.12.2-1ubuntu1.2 amd64 sistem pemesejan antara proses mudah (systemd --user integration) ii libnss-systemd:amd64 237-3ubuntu10.42 amd64 nss modul menyediakan modul nss dinamik resolusi nama pengguna dan kumpulan ii libpam-systemd:amd64 237-3ubuntu10.42 amd64 sistem dan pengurus perkhidmatan - modul PAM ii libsystemd0:amd64 237-3ubuntu10.42 amd64 pustaka utiliti systemd ii libsystemd0:i386 237-3ubuntu pustaka i386 ii networkd-dispatcher 1.7-0ubuntu3.3 semua Perkhidmatan Dispatcher untuk perubahan status sambungan systemd-networkd ri python3-systemd 234-1build1 amd64 Python 3 bindings untuk systemd ii systemd 237-3ubuntu10.42 amd64 sistem dan pengurus perkhidmatan ii2377-v systemd-sys Pengurus sistem dan perkhidmatan 3ubuntu10.42 amd64 - Pautan SysV gaurav@ubuntu:~$
Jika anda mendapat output yang serupa dengan ini, ia bermakna itu sistemd
dipasang pada sistem anda.
Jika ia tidak dipasang, anda boleh memasangnya dengan cara berikut.
sudo apt-get kemas kini
sudo apt-get install systemd
Jika ia dipasang dan masih ralat berterusan, kemudian cuba pasang semula menggunakan arahan berikut.
sudo apt-get install --reinstall systemd
Ini akan menyelesaikan masalah anda dengan memasang sistemd
utiliti.
Kesimpulan
Kami belajar untuk membetulkan "systemctl: command not found" dalam tutorial ini. Kita boleh membuat kesimpulan dengan selamat bahawa menggunakan perkhidmatan
perintah bukannya systemctl
adalah idea yang baik dan menyelesaikan isu dengan baik. Kita boleh menggunakan dengan mudah perkhidmatan
arahan selepas memahami contoh ilustrasi yang ditunjukkan dalam tutorial.