X
Lütfen Ülke (Bölge) Seçiniz
Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X
X
Lütfen Ülke (Bölge) Seçiniz
Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Bilgi Bankası

AnasayfaBilgi BankasıSunucu Yönetimisystemctl Komutları ile Linux Servi...

systemctl Komutları ile Linux Servis Yönetimi: Başlatma, Durdurma ve Log Okuma

Kısaca: systemctl komutları, systemd kullanan Linux sunucularda servisleri yönetmenizi sağlar. sudo systemctl restart nginx bir servisi yeniden başlatır, systemctl status nginx durumunu ve son log satırlarını gösterir, sudo systemctl enable --now nginx servisi hem başlatır hem de açılışta otomatik başlayacak şekilde ayarlar. Servisin logları için journalctl -u nginx kullanılır.

systemctl nedir?

systemctl, Ubuntu, Debian, AlmaLinux ve Rocky Linux gibi güncel dağıtımlarda kullanılan systemd hizmet yöneticisinin komut satırı aracıdır. Web sunucusu, veritabanı veya SSH gibi arka planda çalışan programlar systemd'de servis (service unit) olarak tanımlanır. Komutları sunucunuza SSH ile bağlandıktan sonra çalıştırırsınız. Servisi başlatan, durduran veya ayarını değiştiren komutlar yönetici yetkisi ister, bu yüzden başlarına sudo eklenir. Servis adları dağıtıma göre değişebilir; örneğin Apache, Ubuntu'da apache2, AlmaLinux'ta httpd adıyla çalışır.

Temel systemctl komutları

systemctl şeması: inactive, active (running) ve failed durumları, start, stop, restart, enable komutları ve journalctl

Aşağıdaki örneklerde servis adı olarak nginx kullanılmıştır; kendi servisinizin adını yazın. Tüm seçenekler systemctl kılavuz sayfasında yer alır.

KomutNe yapar
sudo systemctl start nginxServisi başlatır
sudo systemctl stop nginxServisi durdurur
sudo systemctl restart nginxServisi durdurup yeniden başlatır
sudo systemctl reload nginxServis destekliyorsa servisi durdurmadan ayarlarını yeniden okutur
systemctl status nginxDurumu ve son log satırlarını gösterir
sudo systemctl enable nginxServisin açılışta otomatik başlamasını sağlar
sudo systemctl enable --now nginxAçılışta başlamayı ayarlar ve servisi hemen başlatır
sudo systemctl disable nginxAçılışta otomatik başlamayı kapatır
systemctl is-active nginxServis çalışıyor mu, kısa yanıt verir
systemctl is-enabled nginxAçılışta başlamaya ayarlı mı, kısa yanıt verir
systemctl --failedHata durumundaki tüm birimleri listeler

Servis durumunu okumak

systemctl status nginx çıktısında en önemli satır Active: satırıdır. active (running) servisin çalıştığını, inactive (dead) durdurulduğunu, failed ise hatayla kapandığını gösterir. Aynı çıktının altında servisin son log satırları da yer alır; çoğu zaman sorunun ipucu buradadır. Çıktı ekrana sığmazsa sayfalayıcıda açılır; ok tuşlarıyla gezinip q tuşuyla çıkabilirsiniz.

journalctl ile servis loglarını okumak

Daha fazla log için journalctl kullanılır:

  • journalctl -u nginx -n 50: servisin son 50 log satırı.
  • journalctl -u nginx -f: yeni log satırlarını canlı izler; çıkmak için Ctrl+C.
  • journalctl -u nginx --since today: yalnızca bugünkü kayıtlar.
  • journalctl -u nginx -p err: yalnızca hata ve daha önemli düzeydeki kayıtlar.
  • journalctl -b -u nginx: sunucunun son açılışından bu yana olan kayıtlar.

Adım adım: çalışmayan bir servisi kontrol etmek

Siteniz açılmıyorsa ve sunucuya SSH ile bağlanabiliyorsanız, önce web sunucusu, PHP ve veritabanı servislerinin durumuna bakmak sorunun hangi katmanda olduğunu hızla gösterir. Şu sırayla ilerleyin:

  1. systemctl --failed ile hata veren servisleri listeleyin.
  2. systemctl status <servis> ile durumu ve son log satırlarını okuyun.
  3. journalctl -u <servis> -n 50 ile hatanın ayrıntısına bakın.
  4. Sorunu giderin. Servisin kendi yapılandırma testi varsa yeniden başlatmadan önce onu çalıştırın.
  5. sudo systemctl restart <servis> ile servisi yeniden başlatın ve durumu tekrar kontrol edin.
  6. systemctl is-enabled <servis> ile servisin açılışta başlayacağından emin olun. Sorun sürerse veya disk, bellek dolduysa kaynak kullanımını kontrol edin ya da destek talebi açın.

Dikkat edilmesi gerekenler

  • SSH servisini durdurmayın: Uzaktaki bir sunucuda SSH servisini durdurursanız bağlantınızı kaybedebilirsiniz.
  • Servis dosyasını değiştirdiyseniz: sudo systemctl daemon-reload çalıştırın, ardından servisi yeniden başlatın.
  • mask komutu: systemctl mask bir servisi elle bile başlatılamaz hâle getirir. Bilmeden kullanmayın; geri almak için unmask gerekir.
  • Güncellemeden sonra: Paket güncellemelerinden sonra servislerin durumunu kontrol edin. Ayrıntılar Linux sunucu güncelleme rehberimizde.

Sık Sorulan Sorular

restart ile reload arasındaki fark nedir?

restart servisi tamamen durdurup yeniden başlatır, bu sırada kısa bir kesinti olabilir. reload servis destekliyorsa yalnızca ayarları yeniden okutur. Servis reload desteklemiyorsa restart kullanın.

Sunucu yeniden başlayınca servisim neden çalışmıyor?

Servis açılışta başlamaya ayarlı olmayabilir. systemctl is-enabled ile kontrol edin; disabled yanıtı alırsanız sudo systemctl enable komutunu çalıştırın.

systemctl komutları her Linux sunucuda çalışır mı?

systemd kullanan dağıtımlarda çalışır. Ubuntu, Debian, AlmaLinux ve Rocky Linux'un güncel sürümleri systemd kullanır.

Aradığınız Bilgiyi Bulamıyor musunuz?

Bilgi bankasını detaylı olarak incelediniz, fakat ihtiyacınız olan bilgiyi bulamıyorsanız,

Bir Destek Talebi Oluşturun.
Faydalı Buldunuz mu?
(2 defa görüntülendi. / 0 kişi faydalı buldu.)

Powered by WISECP
Top