Linux kullanıcıları için, özellikle de Ubuntu gibi modern dağıtımlar için en güçlü ve kullanışlı araçlardan biri, systemctl komutu. Bu komut satırı yardımcı programı genellikle systemd, sistem ve hizmet yöneticisi ile etkileşimde bulunmak için kullanılır.
Komut aracılığıyla sistem hizmetlerini yönetebilir, durumlarını görüntüleyebilir, başlatabilir veya durdurabilir ve sistem başlangıcında bunları etkinleştirip devre dışı bırakabilirsiniz. Oldukça kullanışlı, değil mi? Ancak systemctl komutu bulunamazsa veya tanınmazsa, “sudo:systemctl: komut bulunamadı” hata.
Öyleyse, “systemctl: komut bulunamadı” hatasının ne anlama geldiğinden, bu hatayla karşılaşmanızın çeşitli nedenlerinden ve bu hatanın nasıl düzeltileceğinden bahsedelim.
Systemctl: Komut Bulunamadı Ne Demektir?
Basitçe söylemek gerekirse, "systemctl: komut bulunamadı" hatası, systemctl komut satırı yardımcı programının mevcut ortamda mevcut olmadığı veya erişilebilir olmadığı anlamına gelir. Bunun bir dizi nedeni olabilir ve bunların tümü ya ortamın sistem dışı bir ortam olmasına ya da sistemd paketinin sistemde kurulu olmamasına bağlıdır.
Temel olarak, systemd paketi kurulu değil veya Linux dağıtımınız veya sürümünüz systemd kullanmıyor; bunun yerine init.d gibi eski hizmet yönetim sistemlerini kullanır. Diğer bir olasılık da PATH ortam değişkeninin systemctl'nin bulunduğu dizini içermemesi, yani kabuğunuzun onu bulamamasıdır.
Artık sisteminizde "systemctl: komut bulunamadı" hatasına yol açan neyin yanlış olabileceğine dair bir fikriniz olduğuna göre, sorununuzun nerede olduğunu nasıl doğrulayabileceğinize ve onu nasıl düzeltebileceğinize bakalım.
Systemctl'yi düzeltme: Komut Bulunamadı Hatası
Aşağıdaki adımlarda, sisteminizde systemd'nin kurulu olup olmadığını ve systemctl'yi kullanıp kullanmadığını doğrulayacağız ve ayrıca systemctl'nin yolunu kontrol edeceğiz. Sorunu doğruladıktan sonra hatayı düzeltmek için gerekli adımları atacağız.
1. Sisteminizin systemd Kullanıp Kullanmadığını Doğrulama
Ubuntu systemctl yalnızca systemd paketi kuruluysa kullanılabildiğinden, öncelikle aşağıdaki komutu çalıştırarak sisteminizin systemd kullanması gerekip gerekmediğini kontrol edeceğiz:
ps -p 1 -o comm=
Veya aşağıdaki komutla systemd sürümünü kontrol edebilirsiniz:
systemd --version
Çıktı systemd ise, systemd sizin başlangıç sisteminizdir ve Ubuntu systemctl'nin kurulu olması gerekir. Ancak çıktı init veya başka bir süreç yöneticisi ise, bu, sisteminizin alternatif bir başlatma sistemi kullandığı ve siz systemd'ye geçmediğiniz sürece systemctl'nin çalışmadığı anlamına gelir.
Upstart veya SysVinit gibi daha eski başlatma sistemlerini görüyorsanız ve systemctl'yi kullanmak için systemd'ye geçmek istiyorsanız şu adımları izleyin:
1. Aşağıdaki komutu kullanarak systemd'yi yükleyerek systemctl'yi yükleyin:
sudo apt install systemd-sysv
2. Bu komutu çalıştırarak sisteminizi yeniden başlatın:
sudo reboot
3. Sisteminizin şu anda systemd'yi kullandığını kontrol edin:
ps -p 1 -o comm=
Çıktı şimdi systemd olmalıdır.
2. Systemd'nin Doğru Kurulmasını Sağlama
Normal şartlarda, systemd kurulduğunda ve init sisteminiz olarak çalıştığında, systemctl komutunun düzgün çalışması gerekir. Değilse, bu, systemd paketinin eksik olduğu veya yanlış yüklendiği anlamına gelir.
Docker kapsayıcısı veya bulut örneği gibi minimum bir Ubuntu sürümü kullanıyorsanız, systemd'nin varsayılan olarak yüklenmemiş olabileceğini unutmayın. Systemctl'yi systemd kurarak kurmak için aşağıdaki komutları çalıştırın:
sudo apt update sudo apt install systemd
Kurulduktan sonra systemctl komutunun mevcut olup olmadığını kontrol edin.
3. systemctl'nin PATH'ini kontrol etmek
Systemctl bulunamadı hatasıyla ilgili yaygın bir sorun, systemctl'nin yüklenebilmesi, ancak sisteminizin PATH'inde olmamasıdır. Systemd ikili dosyalarının /bin, /usr/bin veya /usr/local/bin gibi bulunduğu tipik dizinlerde bulunup bulunmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
which systemctl
PATH'de listelenen dizinlerinizden herhangi birinde systemctl bulunursa, şöyle bir çıktı almalısınız:
/usr/bin/systemctl
PATH'deki dizinlerin hiçbirinde systemctl bulunamazsa, hangi komut hiçbir şey döndürmez.
Ancak systemctl dizinlerinizde bulunmasına rağmen hala çalışmayabilir. Bunun nedeni systemctl'nin PATH'de bulunmayan bir dizinde bulunabilmesidir. Bu durumda, aşağıdaki komutu kullanarak systemctl'nin bulunduğu dizinin sisteminizin bir parçası olup olmadığını doğrulamanız gerekir:
echo $PATH
Çıktı şunun gibi olmalı:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Şimdi tek yapmanız gereken, systemctl'nin bulunduğu dizinin (hangi komuttan aldığınız) echo $PATH komutunun çıktısında listelenen dizinlere dahil edilip edilmediğini kontrol etmektir.
Eğer systemctl dizini echo $PATH çıktısına dahil değilse, onu PATH değişkeninize eklemeniz gerekecektir. Bunu yapmak için aşağıdaki komutu çalıştırmanız gerekir:
İçin Bash kabuğu kullanıcıları~/.bashrc dosyasını bir metin düzenleyicide açın:
nano ~/.bashrc
Dosyanın sonuna aşağıdaki satırı ekleyin:
export PATH=$PATH:/usr/bin
/usr/bin bu örnekte systemctl'nin bulunduğu tipik bir dizindir.
Şimdi CTRL + X tuşlarına basarak dosyayı kaydedin ve kapatın, ardından onaylamak için Y'ye ve kaydetmek için Enter'a basın.
İçin Zsh kullanıcıları, ~/.zshrc dosyasını bir metin düzenleyicide açın:
nano ~/.zshrc
Dosyanın sonuna aşağıdaki satırı ekleyin:
export PATH=$PATH:/usr/bin
/usr/bin bu örnekte systemctl'nin bulunduğu tipik bir dizindir.
Şimdi CTRL + X tuşlarına basarak dosyayı kaydedin ve kapatın, ardından onaylamak için Y'ye ve kaydetmek için Enter'a basın.
Yukarıdaki adımları tamamladıktan sonra, systemctl dizininizin PATH'inize eklenip eklenmediğini doğrulamak için echo $PATH komutunu kullanın. Artık systemctl'yi “systemctl: komut bulunamadı” hatasıyla karşılaşmadan çalıştırabilmelisiniz.
4. Systemd'nin yeniden kurulması
Önceki düzeltmeler işe yaramazsa ve hâlâ komut bulunamadı hatasıyla karşılaşıyorsanız, systemd'yi tamamen yeniden yüklemek sorunu çözebilir. Bunu yapmak için aşağıdaki komutları çalıştırın:
sudo apt purge systemd sudo apt install systemd
Daha sonra sisteminizi şu komutla yeniden başlatın:
sudo reboot
Systemctl'nin çalışıp çalışmadığını kontrol edin.
5. Systemd'nin Doğru Yapılandırılmış Olduğunu Doğrulamak
Bazen sorun, yanlış yapılandırılmış bir systemd kurulumu kadar basit olabilir ve bu da "systemctl: komut bulunamadı" hatasına neden olabilir. Bu sorunu çözmek için tek yapmanız gereken aşağıdaki komutu çalıştırmaktır ve işlem tamamdır:
sudo dpkg-reconfigure systemd
6. Linux için Güncel Olmayan Windows Alt Sistemi (WSL)
Şans eseri altında Ubuntu kullanıyorsunuz WSL (Linux için Windows Alt Sistemi) WSL 1 gibi eski WSL sürümlerinin doğal olarak systemctl'yi desteklemediğini bilmelisiniz, bu nedenle önceki düzeltmelerden hangisini kullanırsanız kullanın, systemctl'yi çalıştıramazsınız.
Systemctl'nin işlevlerinden yararlanmak istiyorsanız, systemd için daha iyi desteğe sahip olan WSL 2'ye yükseltmeniz gerekecektir. WSL kullanıp kullanmadığınızdan emin değilseniz aşağıdaki komutu kullanarak kontrol edebilirsiniz:
uname -a
Çıktıda WSL'den bahsediliyorsa, bu nedenle "systemctl: komut bulunamadı" hatasını görüyorsunuz.
7. Sudo Hizmetini systemctl'ye Alternatif Olarak Kullanmak
Sisteminiz systemd kullanmadığı için “systemctl: command notfound” hatasıyla karşılaşıyorsanız hizmetleri yönetmek için sudo service komutunu kullanabilirsiniz. Bu komut SysVinit veya Upstart gibi eski başlatma sistemleriyle çalışır. Bu, systemd yerine init komut dosyalarına dayanan Ubuntu sistemleri için kullanışlıdır.
Örneğin, bir hizmeti başlatmak için şunu çalıştırırsınız:
sudo service <service_name> start
Son Düşünceler
systemd ve onun systemctl komut satırı yardımcı programı, SysVinit ve Upstart gibi diğer eski init sistemlerinin çoğunun yerini aldı. Systemd, yekpare tasarımı ve Unix dışı felsefesi nedeniyle herkesin init sistem çayı olmayabilir, ancak systemd hala genel olarak yaygın seçim olarak kabul edilmektedir. Dolayısıyla, systemd'nin komut satırı yardımcı programını kullanamamak yeteneklerini ciddi şekilde sınırladığından, systemctl komut kullanılamıyor hatasını çözebildiğinizi umuyoruz.
SSS
Systemctl nedir ve systemctl: Komut Bulunamadı Ne Demektir?
systemctl, Ubuntu gibi systemd çalıştıran Linux sistemlerindeki hizmetleri yönetmek için kullanılan bir komut satırı aracıdır. "Systemctl: komut bulunamadı" hatası, araç kullanılamadığında veya erişilebilir olmadığında, genellikle sistemin systemd kullanmaması veya systemd paketinin kurulu olmaması nedeniyle oluşur.
Systemctl Ubuntu'nun tüm sürümlerinde mevcut mu?
Hayır, systemctl Ubuntu'nun tüm sürümlerinde mevcut değildir. systemctl, çoğu modern Ubuntu sürümünde (15.04'ten itibaren) varsayılan olan systemd init sisteminin bir parçasıdır. Daha eski sürümler veya belirli minimum kurulumlar bunun yerine SysVinit veya Upstart gibi alternatif başlatma sistemlerini kullanabilir.