%50 indirim tüm planlarda, sınırlı süreyle. Başlangıç fiyatı $2.48/mo
7 dk kaldı
Sunucular ve OS

Ubuntu'da systemctl: Command Not Found Hatası Nasıl Düzeltilir

Nick Silver By Nick Silver 7 dk okuma 20 Şubat 2025'te güncellendi
systemctl: command not found hatası nasıl düzeltilir

Linux kullanıcıları için, özellikle Ubuntu gibi modern dağıtımlarda, en kullanışlı araçlardan biri systemctl komutu'dir. Bu komut satırı aracı, genellikle systemd ile yani sistem ve servis yöneticisiyle etkileşim kurmak için kullanılır.

Bu komut sayesinde sistem servislerini yönetebilir, durumlarını görebilir, başlatıp durdurabilir ve sistem açılışında etkinleştirip devre dışı bırakabilirsiniz. Oldukça kullanışlı, değil mi? Ancak systemctl komutu bulunamaz ya da tanınmazsa şu hatayla karşılaşırsınız: "sudo:systemctl: command not found" hata.

Şimdi "systemctl: command not found" hatasının ne anlama geldiğini, bu hatayla neden karşılaştığınızı ve nasıl çözebileceğinizi ele alalım.

systemctl: Command Not Found Hatası Ne Anlama Gelir?

Kısaca açıklamak gerekirse, "systemctl: command not found" hatası, systemctl komut satırı aracının mevcut ortamda mevcut olmadığı veya erişilemez durumda olduğu anlamına gelir. Bunun birden fazla nedeni olabilir; ancak hepsi ya ortamın systemd'siz bir ortam olmasına ya da systemd paketinin sisteme kurulu olmamasına dayanır.

Temel olarak şu ihtimaller söz konusudur: systemd paketi kurulu değildir, Linux dağıtımınız veya sürümünüz systemd kullanmıyor olabilir ve bunun yerine init.d gibi daha eski servis yönetim sistemleri kullanıyor olabilir. Bir diğer olasılık ise PATH ortam değişkeninin systemctl'nin bulunduğu dizini içermemesidir; bu durumda kabuğunuz komutu bulamaz.

Sisteminizde neyin yanlış gittiğine dair bir fikir edindikten sonra, "systemctl: command not found" hatasına yol açan sorunun tam olarak nerede olduğunu nasıl doğrulayabileceğinize ve nasıl düzeltebileceğinize bakalım.

systemctl: Command Not Found Hatasını Düzeltme

Aşağıdaki adımlarda, sisteminizde systemd'nin kurulu olup olmadığını ve systemctl'nin kullanılıp kullanılmadığını doğrulayacağız; aynı zamanda systemctl'nin yolunu kontrol edeceğiz. Sorunu tespit ettikten sonra hatayı gidermek için gerekli adımları atacağız.

1. Sisteminizin systemd Kullanıp Kullanmadığını Doğrulama

Ubuntu'de systemctl yalnızca systemd paketi kuruluysa çalışır. Bu nedenle, önce aşağıdaki komutu çalıştırarak sisteminizin systemd kullanması gerekip gerekmediğini kontrol edeceğiz:

ps -p 1 -o comm=

Ya da systemd sürümünü şu komutla kontrol edebilirsin:

systemd --version

Çıktı systemd ise, systemd sizin init sisteminizdir ve Ubuntu systemctl kurulu olmalıdır. Ancak çıktı init veya başka bir süreç yöneticisiyse, sisteminiz alternatif bir başlatma sistemi kullanıyor demektir ve systemd'ye geçiş yapmadan systemctl çalışmaz.

Upstart veya SysVinit gibi eski bir başlatma sistemi görüyor ve systemctl kullanmak için systemd'ye geçmek istiyorsanız şu adımları izleyin:

1. Aşağıdaki komutu kullanarak systemd'yi kurarak systemctl'yi yükleyin:

sudo apt install systemd-sysv

2. Şu komutu çalıştırarak sisteminizi yeniden başlatın:

sudo reboot

3. Sisteminizin artık systemd kullandığını doğrulayın:

ps -p 1 -o comm=

Çıktı artık systemd olmalıdır.

2. systemd'nin Doğru Kurulduğunu Doğrulama

Normalde, systemd kurulu ve init sisteminiz olarak çalışıyorsa, systemctl komutu sorunsuz çalışır. Çalışmıyorsa, systemd paketi ya eksiktir ya da hatalı kurulmuştur.

Ubuntu'nin Docker container veya bulut örneği gibi minimal bir sürümünü kullanıyorsanız, systemd varsayılan olarak kurulmamış olabilir. systemd'yi kurarak systemctl'yi kullanılabilir hale getirmek için şu komutları çalıştırın:

sudo apt update
sudo apt install systemd

Kurulum tamamlandıktan sonra systemctl komutunun kullanılabilir olup olmadığını kontrol edin.

3. systemctl'nin PATH Değişkenini Kontrol Etme

systemctl not found hatasının yaygın nedenlerinden biri, systemctl'nin kurulu olmasına rağmen sistem PATH'inize eklenmemiş olmasıdır. systemd ikili dosyalarının /bin, /usr/bin veya /usr/local/bin gibi tipik dizinlerde bulunup bulunmadığını kontrol etmek için şu komutu kullanabilirsiniz:

which systemctl

systemctl, PATH'inizde listelenen dizinlerden birinde bulunuyorsa çıktı şu şekilde görünür:

/usr/bin/systemctl

systemctl, PATH'teki dizinlerin hiçbirinde bulunmuyorsa which komutu herhangi bir çıktı vermez.

Ancak systemctl dizinlerde bulunsa bile çalışmayabilir. Bunun nedeni, systemctl'nin PATH'e dahil edilmemiş bir dizinde yer alıyor olmasıdır. Bu durumda, systemctl'nin bulunduğu dizini şu komutla doğrulamanız gerekir:

echo $PATH

Çıktı şu şekilde görünmelidir:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Şimdi yapmanız gereken tek şey, systemctl'nin bulunduğu dizinin (which komutuyla öğrendiğiniz) echo $PATH çıktısındaki dizinler arasında yer alıp almadığını kontrol etmektir.

systemctl'nin dizini echo $PATH çıktısında yer almıyorsa, bu dizini PATH değişkeninize eklemeniz gerekir. Bunun için şu komutu çalıştırın:

AppFlowy için Bash shell kullanıcıları, bir metin editöründe ~/.bashrc dosyasını açın:

nano ~/.bashrc

Dosyanın sonuna şu satırı ekleyin:

export PATH=$PATH:/usr/bin

Bu örnekte systemctl'in bulunduğu tipik dizin /usr/bin'dir.

Şimdi CTRL + X'e basarak dosyayı kaydet ve kapat, ardından onaylamak için Y, kaydetmek için Enter'a bas.

AppFlowy için Zsh kullanıcıları, Bir metin editöründe ~/.zshrc dosyasını açın:

nano ~/.zshrc

Dosyanın sonuna şu satırı ekleyin:

export PATH=$PATH:/usr/bin

Bu örnekte systemctl'in bulunduğu tipik dizin /usr/bin'dir.

Şimdi CTRL + X'e basarak dosyayı kaydet ve kapat, ardından onaylamak için Y, kaydetmek için Enter'a bas.

Yukarıdaki adımları tamamladıktan sonra, systemctl'nin dizininin PATH'inize eklenip eklenmediğini echo $PATH komutuyla doğrulayın. Artık "systemctl: command not found" hatasıyla karşılaşmadan systemctl'yi çalıştırabilmeniz gerekir.

4. systemd'yi Yeniden Yükleme

Önceki çözümler işe yaramadıysa ve hata devam ediyorsa, systemd'yi tamamen yeniden kurmak sorunu çözebilir. Bunun için şu komutları çalıştırın:

sudo apt purge systemd
sudo apt install systemd

Ardından 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ıldığını Doğrulama

Bazen sorun, systemd kurulumunun hatalı yapılandırılmış olmasından kaynaklanır ve bu durum "systemctl: command not found" hatasına yol açar. Bu sorunu çözmek için tek yapmanız gereken şu komutu çalıştırmaktır:

sudo dpkg-reconfigure systemd

6. Güncel Olmayan Windows, Linux için Alt Sistemi (WSL)

Eğer Ubuntu'yi WSL (Windows Subsystem for Linux) altında kullanıyorsanız, WSL 1 gibi eski WSL sürümlerinin systemctl'yi yerel olarak desteklemediğini bilmeniz gerekir. Dolayısıyla önceki çözümlerin hangisini uygularsanız uygulayın, systemctl'yi çalıştıramazsınız.

systemctl işlevlerinden yararlanmak istiyorsanız, systemd desteği daha iyi olan WSL 2'ye yükseltme yapmanız gerekir. WSL kullanıp kullanmadığınızdan emin değilseniz, aşağıdaki komutu çalıştırarak kontrol edebilirsiniz:

uname -a

Çıktıda WSL ifadesi geçiyorsa, "systemctl: command not found" hatasının nedeni budur.

7. systemctl'ye Alternatif Olarak sudo Service Kullanımı

Sisteminiz systemd kullanmadığı için "systemctl: command not found" hatasıyla karşılaşıyorsanız, servisleri yönetmek için sudo service komutunu kullanabilirsiniz. Bu komut, SysVinit veya Upstart gibi eski init sistemleriyle çalışır. systemd yerine init betiklerine dayanan Ubuntu sistemleri için kullanışlı bir alternatiftir.

Örneğin, bir servisi başlatmak için şu komutu çalıştırırsınız:

sudo service <service_name> start

Son Sözler

systemd ve onun komut satırı aracı systemctl, SysVinit ve Upstart gibi eski init sistemlerinin büyük bölümünün yerini almıştır. Monolitik yapısı ve Unix felsefesine aykırı tasarımı nedeniyle systemd herkese hitap etmeyebilir; ancak genel olarak en yaygın tercih olmaya devam etmektedir. Umarız bu rehber sayesinde systemctl komutunun bulunamaması hatasını çözmüşsünüzdür. Zira systemd'nin komut satırı aracını kullanamamak, sisteminizin işlevselliğini ciddi ölçüde kısıtlar.

SSS

systemctl nedir ve systemctl: Command Not Found ne anlama gelir?

systemctl, Ubuntu gibi systemd çalıştıran Linux sistemlerinde servisleri yönetmek için kullanılan bir komut satırı aracıdır. "systemctl: command not found" hatası, bu araç mevcut olmadığında veya erişilemez olduğunda ortaya çıkar. Bunun başlıca nedenleri, sistemin systemd kullanmaması ya da systemd paketinin kurulu olmamasıdır.

systemctl, Ubuntu'nin tüm sürümlerinde kullanılabilir mi?

Hayır, systemctl Ubuntu'nin tüm sürümlerinde bulunmaz. systemctl, systemd init sisteminin bir parçasıdır ve bu sistem çoğu modern Ubuntu sürümünde (15.04 ve sonrasında) varsayılan olarak gelir. Eski sürümler veya bazı minimal kurulumlar, bunun yerine SysVinit ya da Upstart gibi alternatif init sistemleri kullanabilir.

Paylaş

Bloga göz at

Okumaya devam et.

Cosmos paneli etrafında uygulama panellerini gösteren Cosmos Cloud ile Çalıştırabileceğin En İyi Self-Hosted Uygulamalar kapak görseli.
Sunucular ve OS

Cosmos Cloud ile Çalıştırabileceğin En İyi Self-Hosted Uygulamalar: Dosyalar, Medya, Şifreler, Otomasyon ve Daha Fazlası!

Belki Cosmos Cloud'u kurdun ve hangi uygulamaların iyi uyduğunu görmek istiyorsun ya da henüz Cosmos'a karar vermedin ve iş akışına ne kadar uyduğunu görmek istiyorsun.

Nick SilverNick Silver 16 dk okuma
Hibrit kurulum diyagramı ve neon ops ile access bloklarını içeren Docker Uygulamalarını Yönetmek için Portainer vs Cosmos Cloud kapak görseli.
Sunucular ve OS

Portainer vs Cosmos Cloud: Docker Uygulama Yönetimi için Uygun Seçim

Docker'ı zaten biliyorsan ve büyüyen bir uygulama stack'ini daha temiz çalıştırmak istiyorsan, Portainer vs Cosmos Cloud için kısa cevap şu: Portainer doğrudan kontrol için daha güçlü bir seçim.

Nick SilverNick Silver 14 dk okuma
Soyut bir bulut ağ dünyasında üç self-hosted yol gösteren Cosmos Cloud vs CasaOS vs Umbrel öne çıkan görseli.
Sunucular ve OS

Cosmos Cloud vs CasaOS vs Umbrel: Hangi Self-Hosted Platform Sana Uygun?

Kısa cevap şu: CasaOS hala başlamak için en kolay yer, Umbrel en temiz seçilmiş hisse sahip, Cosmos Cloud ise alan üzerinde daha sıkı kontrol istediğinde daha mantıklı.

Nick SilverNick Silver 11 dk okuma

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

2008'den beri bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.