Salah satu alat paling berguna bagi pengguna Linux, terutama distro modern seperti Ubuntu, adalah perintah systemctl. Utilitas command-line ini biasanya digunakan untuk berinteraksi dengan systemd, sistem, dan service manager.
Melalui perintah ini, kamu bisa mengelola layanan sistem, melihat statusnya, menjalankan atau menghentikannya, serta mengaktifkan dan menonaktifkannya saat sistem startup. Cukup berguna, bukan? Tapi jika perintah systemctl tidak ditemukan atau tidak dikenali, kamu akan menghadapi "sudo:systemctl: command not found" kesalahan.
Jadi, mari kita bahas apa arti error "systemctl: command not found", berbagai penyebabnya, dan cara mengatasinya.
Apa Arti Error "systemctl: Command Not Found"?
Singkatnya, error "systemctl: command not found" berarti utilitas command-line systemctl tidak tersedia atau tidak dapat diakses di lingkungan saat ini. Penyebabnya bisa bermacam-macam, tetapi semuanya bermuara pada dua hal: lingkungan yang digunakan bukan lingkungan sistem, atau paket systemd belum terpasang di sistem.
Pada dasarnya, paket systemd belum terinstal, atau distro maupun versi Linux yang kamu gunakan memang tidak memakai systemd - melainkan sistem manajemen layanan yang lebih lama seperti init.d. Kemungkinan lain, variabel lingkungan PATH tidak menyertakan direktori tempat systemctl berada, sehingga shell tidak dapat menemukannya.
Sekarang setelah kamu memiliki gambaran tentang apa yang mungkin menjadi penyebab error "systemctl: command not found" di sistemmu, mari kita lihat cara memverifikasi letak masalahnya dan cara memperbaikinya.
Mengatasi Error systemctl: Command Not Found
Pada langkah-langkah berikut, kita akan memeriksa apakah sistem Anda telah menginstal systemd dan menggunakan systemctl atau tidak, sekaligus mengecek path systemctl. Setelah masalahnya teridentifikasi, kita akan mengambil langkah yang diperlukan untuk memperbaiki error tersebut.
1. Memverifikasi Apakah Sistem Anda Menggunakan systemd
Karena Ubuntu systemctl hanya bisa digunakan jika paket systemd sudah terpasang, pertama-tama kita perlu memeriksa apakah sistem kamu menggunakan systemd dengan menjalankan perintah berikut:
ps -p 1 -o comm=
Atau, Anda bisa memeriksa versi systemd dengan perintah berikut:
systemd --version
Jika outputnya adalah systemd, berarti systemd adalah init system yang digunakan dan seharusnya sudah ada Ubuntu systemctl terinstal. Namun, jika outputnya adalah init atau process manager lain, berarti sistem Anda menggunakan initialization system alternatif, dan systemctl tidak akan berfungsi kecuali Anda migrasi ke systemd.
Jika server kamu masih menggunakan sistem inisialisasi lama seperti Upstart atau SysVinit dan ingin beralih ke systemd untuk menggunakan systemctl, ikuti langkah-langkah berikut:
1. Instal systemctl dengan menginstal systemd menggunakan perintah berikut:
sudo apt install systemd-sysv
2. Reboot sistem Anda dengan menjalankan perintah ini:
sudo reboot
3. Periksa apakah sistem Anda sekarang menggunakan systemd:
ps -p 1 -o comm=
Output sekarang seharusnya menampilkan systemd.
2. Memastikan systemd Terinstal dengan Benar
Dalam kondisi normal, jika systemd sudah terinstal dan berjalan sebagai init system, perintah systemctl seharusnya bekerja dengan baik. Jika tidak, kemungkinan paket systemd belum terinstal atau installasinya bermasalah.
Perlu diperhatikan bahwa jika kamu menggunakan versi minimal dari Ubuntu, seperti container Docker atau cloud instance, systemd mungkin tidak terinstal secara default. Untuk menginstal systemctl melalui instalasi systemd, jalankan perintah berikut:
sudo apt update sudo apt install systemd
Setelah terinstal, cek apakah perintah systemctl sudah tersedia.
3. Memeriksa PATH systemctl
Salah satu penyebab umum error systemctl not found adalah systemctl sudah terinstal, tetapi lokasinya tidak ada di PATH sistem kamu. Untuk memeriksa apakah binary systemd ada di direktori umum seperti /bin, /usr/bin, atau /usr/local/bin, jalankan perintah berikut:
which systemctl
Jika systemctl ditemukan di salah satu direktori yang terdaftar di PATH, output-nya akan terlihat seperti ini:
/usr/bin/systemctl
Jika systemctl tidak ditemukan di direktori mana pun dalam PATH, perintah which tidak akan mengembalikan hasil apa pun.
Namun, systemctl bisa saja tetap tidak berfungsi meskipun ditemukan di salah satu direktori kamu. Ini terjadi karena systemctl mungkin berada di direktori yang tidak tercantum dalam PATH. Dalam situasi ini, kamu perlu memverifikasi apakah direktori tempat systemctl berada sudah termasuk dalam PATH sistem dengan perintah berikut:
echo $PATH
Output-nya akan terlihat seperti ini:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Sekarang, yang perlu kamu lakukan hanyalah memeriksa apakah direktori tempat systemctl berada (yang kamu dapatkan dari perintah which) sudah tercantum dalam output perintah echo $PATH.
Jika direktori systemctl tidak muncul dalam output echo $PATH, kamu perlu menambahkannya ke variabel PATH. Caranya, jalankan perintah berikut:
Untuk Pengguna Bash shell, buka file ~/.bashrc di text editor:
nano ~/.bashrc
Tambahkan baris berikut di akhir file:
export PATH=$PATH:/usr/bin
/usr/bin adalah contoh direktori umum tempat systemctl berada dalam contoh ini.
Setelah itu, simpan dan tutup file dengan menekan CTRL + X, lalu Y untuk konfirmasi, dan Enter untuk menyimpan.
Untuk Pengguna Zsh, Buka file ~/.zshrc di text editor:
nano ~/.zshrc
Tambahkan baris berikut di akhir file:
export PATH=$PATH:/usr/bin
/usr/bin adalah contoh direktori umum tempat systemctl berada dalam contoh ini.
Setelah itu, simpan dan tutup file dengan menekan CTRL + X, lalu Y untuk konfirmasi, dan Enter untuk menyimpan.
Setelah langkah-langkah di atas selesai, gunakan perintah echo $PATH untuk memverifikasi apakah direktori systemctl kamu sudah ditambahkan ke PATH. Sekarang kamu seharusnya bisa menjalankan systemctl tanpa menemui error "systemctl: command not found".
4. Menginstal ulang systemd
Jika solusi sebelumnya tidak berhasil dan kamu masih menghadapi error command not found, menginstal ulang systemd secara menyeluruh mungkin bisa menyelesaikan masalah ini. Jalankan perintah berikut:
sudo apt purge systemd sudo apt install systemd
Kemudian, reboot sistem kamu dengan perintah ini:
sudo reboot
Cek apakah systemctl sudah berfungsi.
5. Memverifikasi Konfigurasi systemd
Terkadang, masalahnya sesederhana konfigurasi instalasi systemd yang keliru, sehingga muncul error "systemctl: command not found". Yang perlu kamu lakukan untuk memperbaiki masalah ini hanyalah menjalankan perintah berikut:
sudo dpkg-reconfigure systemd
6. Subsistem Windows yang Sudah Usang untuk Linux (WSL)
Jika kamu menggunakan Ubuntu di bawah WSL (Subsistem Windows untuk Linux) perlu diketahui bahwa versi lama WSL, seperti WSL 1, tidak mendukung systemctl secara bawaan. Jadi, tidak peduli perbaikan mana yang kamu coba dari langkah-langkah sebelumnya, systemctl tetap tidak akan bisa dijalankan.
Jika kamu ingin menggunakan fungsi systemctl, kamu perlu upgrade ke WSL 2 yang memiliki dukungan lebih baik untuk systemd. Jika kamu tidak yakin apakah sedang menggunakan WSL atau tidak, cek dengan perintah berikut:
uname -a
Jika output menyebutkan WSL, itulah penyebab error "systemctl: command not found" yang kamu lihat.
7. Menggunakan sudo Service sebagai Alternatif systemctl
Jika kamu mendapat error "systemctl: command not found" karena sistem tidak menggunakan systemd, kamu bisa menggunakan perintah sudo service untuk mengelola layanan. Perintah ini bekerja dengan init system lama seperti SysVinit atau Upstart, dan berguna untuk sistem Ubuntu yang masih mengandalkan init script alih-alih systemd.
Misalnya, untuk menjalankan sebuah layanan, gunakan perintah berikut:
sudo service <service_name> start
Pemikiran Akhir
systemd beserta utilitas baris perintah systemctl kini telah menggantikan sebagian besar init system lama seperti SysVinit dan Upstart. Meskipun systemd tidak selalu menjadi pilihan semua orang karena desainnya yang monolitik dan pendekatannya yang dianggap tidak sesuai filosofi Unix, systemd tetap menjadi pilihan yang paling umum digunakan saat ini. Semoga kamu sudah berhasil mengatasi error systemctl command not available ini, karena tanpa utilitas baris perintah systemd, banyak kemampuan sistem yang tidak bisa dimanfaatkan.
Pertanyaan yang Sering Diajukan
Apa Itu systemctl dan Apa Maksud Error systemctl: Command Not Found?
systemctl adalah alat baris perintah untuk mengelola layanan di sistem Linux yang menggunakan systemd, seperti Ubuntu. Error "systemctl: command not found" muncul ketika alat ini tidak tersedia atau tidak bisa diakses, biasanya karena sistem tidak menggunakan systemd atau paket systemd belum terinstal.
Apakah systemctl Tersedia di Semua Versi Ubuntu?
Tidak, systemctl tidak tersedia di semua versi Ubuntu. systemctl adalah bagian dari init system systemd, yang menjadi default di sebagian besar versi Ubuntu modern (mulai versi 15.04 ke atas). Versi lama atau instalasi minimal tertentu mungkin menggunakan init system alternatif seperti SysVinit atau Upstart.