VDS Sunucu

Systemctl Nedir? Linux Servisleri Nasıl Yönetilir?

26 Eylül 2026 16 dk okuma 40 görüntülenme Burak A.
Systemctl Nedir? Linux Servisleri Nasıl Yönetilir?

Linux sunucularda Nginx, MySQL, PHP-FPM, SSH, Docker veya farklı uygulama servislerini yönetmek için kullanılan en önemli araçlardan biri systemctl komutudur. Peki systemctl nedir?

systemctl, systemd tarafından yönetilen Linux servislerini ve sistem birimlerini kontrol etmek için kullanılan komut satırı aracıdır.

Bir servisin çalışıp çalışmadığını kontrol etmek, servisi başlatmak, durdurmak, yeniden başlatmak veya sistem açılışında otomatik olarak çalışmasını sağlamak için systemctl kullanılabilir.

Örneğin Nginx servisinin durumunu kontrol etmek için:

systemctl status nginx

Bir VDS sunucusunda servis yönetimi yapıyorsanız systemctl komutlarını bilmek oldukça önemlidir.

Özellikle bir servis çalışmıyorsa yalnızca servisi yeniden başlatmak yerine systemctl + journalctl birlikte kullanılarak problemin nedeni araştırılabilir.

Linux loglarını incelemek için hazırladığımız Journalctl Nedir? Linux Logları Nasıl İncelenir? rehberinde log analizi tarafını detaylı olarak ele almıştık.

Bu yazıda ise systemctl nedir, hangi komutlarla kullanılır, servisler nasıl başlatılır, nasıl durdurulur ve çalışmayan servislerin hataları nasıl analiz edilir sorularını inceleyeceğiz.

⚙️ Systemd Nedir?

Systemctl komutunu anlamak için öncelikle systemd kavramını bilmek gerekir.

Modern Linux dağıtımlarının önemli bir bölümünde systemd, sistem açılışından servis yönetimine kadar birçok görevi üstlenir.

Sunucu açıldığında:

Linux Kernel
      ↓
   systemd
      ↓
Servisler
      ↓
Nginx / MySQL / SSH / Docker / PHP-FPM

şeklinde bir yapı görebilirsiniz.

Systemd servislerin başlatılması, durdurulması, bağımlılıklarının yönetilmesi ve sistem açılışında otomatik olarak devreye alınması gibi işlemleri yönetebilir.

systemctl ise systemd ile iletişim kurmamızı sağlayan temel komutlardan biridir.

Bu nedenle:

systemd = servis yönetim altyapısı

systemctl = bu altyapıyı yönetmek için kullandığımız komut

şeklinde düşünebilirsiniz.

🔍 Systemctl Nedir Ne İşe Yarar?

Systemctl ile Linux sunucularda çok sayıda yönetim işlemi gerçekleştirilebilir.

En sık kullanılan işlemler şunlardır:

  • 🔎 Servis durumunu kontrol etmek
  • ▶️ Servis başlatmak
  • ⏹️ Servis durdurmak
  • 🔄 Servisi yeniden başlatmak
  • ♻️ Yapılandırmayı yeniden yüklemek
  • 🚀 Açılışta otomatik başlatmak
  • 🚫 Açılışta otomatik başlatmayı kapatmak
  • 📋 Servisleri listelemek
  • ⚠️ Başarısız servisleri bulmak
  • 🧩 Servis bağımlılıklarını incelemek

Örneğin:

systemctl status nginx

komutu Nginx servisinin mevcut durumunu gösterir.

Bir VDS sunucusunda servis problemi yaşandığında genellikle ilk kontrol edilmesi gereken noktalardan biri budur.

🟢 Systemctl Nedir ile Servis Durumu Nasıl Kontrol Edilir?

Bir servisin çalışıp çalışmadığını öğrenmek için:

systemctl status servis

kullanılır.

Örneğin Nginx:

systemctl status nginx

MySQL:

systemctl status mysql

SSH:

systemctl status ssh

Docker:

systemctl status docker

şeklinde kontrol edilebilir.

Çıktıda genellikle servisin:

  • Çalışıp çalışmadığı
  • Ne zaman başlatıldığı
  • Process ID’si
  • Son durum mesajları
  • Servisin başarısız olup olmadığı

gibi bilgiler görülebilir.

Örneğin:

Active: active (running)

görüyorsanız servis çalışıyor demektir.

Şu şekilde bir sonuç:

Active: failed

ise servisin başlatılamadığını veya çalışırken hata verdiğini gösterir.

Ancak burada önemli bir nokta var.

failed sonucunu görmek problemin nedenini tek başına açıklamaz.

Asıl hata mesajlarını incelemek için journalctl kullanılmalıdır.

Systemctl nasıl çalışır sorusunu gösteren Linux servis yönetimi ve systemd akışı
Systemctl komutları systemd tarafından yönetilen Linux servislerini başlatma, durdurma, yeniden başlatma ve durum kontrolü için kullanılır.

▶️ Systemctl Nedir ile Servis Nasıl Başlatılır?

Çalışmayan bir servisi başlatmak için:

systemctl start nginx

kullanabilirsiniz.

Örneğin:

sudo systemctl start nginx

Bu komut Nginx servisini başlatmayı dener.

Ardından:

systemctl status nginx

ile durum kontrol edilebilir.

Eğer servis başlatılamıyorsa doğrudan tekrar tekrar start komutu vermek yerine hata kayıtlarını incelemek daha doğru olur.

journalctl -u nginx

Bu komutla Nginx servisinin journal kayıtları görüntülenebilir.

⏹️ Systemctl Nedir ile Servis Nasıl Durdurulur?

Bir servisi durdurmak için:

systemctl stop nginx

kullanılır.

Örneğin bakım sırasında Nginx’i durdurmak istiyorsanız:

sudo systemctl stop nginx

komutu kullanılabilir.

Ancak kritik sistem servislerini ne yaptığınızı bilmeden durdurmamak gerekir.

Örneğin SSH servisini yanlış yapılandırıp durdurmak, özellikle uzaktan yönettiğiniz bir VDS’de sunucuya erişiminizi kaybetmenize neden olabilir.

SSH güvenliği ve servis yapılandırmalarıyla ilgili detaylar için VDS Sunucuda SSH Güvenliği Nasıl Sağlanır? rehberimize de göz atabilirsiniz.

🔄 Systemctl Nedir ile Servis Nasıl Yeniden Başlatılır?

Bir servisi yeniden başlatmak için:

systemctl restart nginx

kullanılır.

Örneğin Nginx yapılandırmasında değişiklik yaptıysanız:

sudo systemctl restart nginx

ile servis yeniden başlatılabilir.

Ancak burada da dikkat edilmesi gereken bir nokta var.

Eğer yapılandırma dosyasında hata varsa servis yeniden başlatma sırasında tamamen başarısız olabilir.

Bu nedenle özellikle Nginx gibi servislerde yapılandırmayı önce test etmek daha güvenlidir.

Örneğin:

nginx -t

başarılı olduktan sonra:

systemctl restart nginx

uygulanabilir.

♻️ Systemctl Nedir Reload Nedir?

Her değişiklikte servisi tamamen yeniden başlatmak gerekmeyebilir.

Bazı servisler yapılandırmalarını yeniden okuyabilecek şekilde reload işlemini destekler.

Örneğin:

systemctl reload nginx

kullanılabilir.

restart ile reload arasındaki temel fark şudur:

restart:

Servis durur
↓
Servis yeniden başlar

reload:

Servis çalışmaya devam eder
↓
Yapılandırma yeniden okunur

Ancak her servis reload işlemini desteklemeyebilir.

Bu nedenle servis dokümantasyonu ve mevcut unit yapılandırması kontrol edilmelidir.

🚀 Systemctl Nedir ile Servis Açılışta Nasıl Başlatılır?

Sunucu yeniden başlatıldığında bir servisin otomatik olarak çalışmasını istiyorsanız:

systemctl enable nginx

kullanabilirsiniz.

Örneğin:

sudo systemctl enable nginx

komutundan sonra sistem açıldığında Nginx’in otomatik başlatılması için gerekli yapılandırma oluşturulur.

Burada enable ile start arasındaki fark önemlidir.

start

Servisi şimdi başlatır.

systemctl start nginx

enable

Servisin sistem açılışında otomatik başlatılmasını sağlar.

systemctl enable nginx

İkisini birlikte yapmak isterseniz:

systemctl enable --now nginx

kullanabilirsiniz.

Bu komut servisi hem etkinleştirir hem de mevcut oturumda başlatır.

🚫 Systemctl Nedir ile Otomatik Başlatma Nasıl Kapatılır?

Bir servisin sistem açılışında otomatik çalışmasını istemiyorsanız:

systemctl disable nginx

kullanabilirsiniz.

Örneğin:

sudo systemctl disable nginx

servisin boot sırasında otomatik başlatılmasını devre dışı bırakır.

Ancak bu işlem servisi mevcut durumda durdurmaz.

Servisi hem durdurmak hem de açılışta çalışmasını engellemek istiyorsanız:

systemctl disable --now nginx

kullanılabilir.

📋 Systemctl Nedir ile Çalışan Servisler Nasıl Listelenir?

Linux sunucuda çalışan servisleri görmek için:

systemctl list-units --type=service

kullanabilirsiniz.

Yalnızca çalışan servisleri görmek için:

systemctl list-units --type=service --state=running

kullanılabilir.

Başarısız servisleri görmek için ise:

systemctl --failed

oldukça kullanışlıdır.

Bu komut özellikle sunucuda bir servis neden çalışmıyor sorusuna hızlı şekilde yaklaşmak için faydalıdır.

Örneğin:

UNIT                 LOAD   ACTIVE SUB    DESCRIPTION
nginx.service        loaded failed failed A high performance web server

gibi bir kayıt görürseniz Nginx tarafında problem olduğunu anlayabilirsiniz.

Ancak yine burada asıl hata nedenini görmek için journalctl tarafına geçmek gerekir.

🔥 Systemctl Nedir ile Failed Servisler Nasıl Bulunur?

Sunucuda başarısız olmuş servisleri:

systemctl --failed

ile listeleyebilirsiniz.

Daha detaylı bilgi almak için:

systemctl status servis.service

kullanılabilir.

Örneğin:

systemctl status nginx.service

Ardından logları:

journalctl -u nginx.service

ile inceleyebilirsiniz.

Yani pratik teşhis zinciri:

systemctl --failed
        ↓
systemctl status servis
        ↓
journalctl -u servis
        ↓
Hata nedenini analiz et
        ↓
Sorunu düzelt
        ↓
systemctl restart servis

şeklinde ilerleyebilir.

Bu nedenle systemctl nedir sorusunu yalnızca servis başlatma ve durdurma komutları üzerinden düşünmemek gerekir.

Systemctl, Linux sunucu yönetiminde hata teşhisinin de önemli parçalarından biridir.

🧠 Systemctl Nedir ve Journalctl Birlikte Nasıl Kullanılır?

Systemctl ile servis durumunu öğrenirken journalctl ile o servisin loglarını inceleyebilirsiniz.

Örneğin:

systemctl status nginx

servisin başarısız olduğunu gösteriyorsa:

journalctl -u nginx

ile ilgili kayıtları inceleyebilirsiniz.

Belirli bir servisin son loglarını görmek için:

journalctl -u nginx -n 50

kullanılabilir.

Canlı log takibi için:

journalctl -u nginx -f

kullanabilirsiniz.

Buradaki -f, yeni log kayıtlarının canlı olarak ekrana gelmesini sağlar.

Dolayısıyla:

systemctl = servis yönetimi

journalctl = servis ve sistem log analizi

şeklinde bir ilişki kurulabilir.

Bu ikisini birlikte kullanmak Linux VDS yönetiminde oldukça güçlü bir teşhis yöntemi oluşturur.

🔎 Systemctl Nedir Servis Hatası Nasıl Analiz Edilir?

Bir servis çalışmıyorsa aşağıdaki sırayla ilerlemek mantıklıdır.

1. Servis durumunu kontrol edin

systemctl status nginx

2. Son logları inceleyin

journalctl -u nginx -n 50

3. Hata seviyesindeki kayıtları filtreleyin

journalctl -u nginx -p err

4. Yapılandırmayı kontrol edin

Servise göre ilgili config test komutunu çalıştırın.

5. Sorunu düzelttikten sonra servisi yeniden başlatın

systemctl restart nginx

6. Tekrar durum kontrolü yapın

systemctl status nginx

Bu yaklaşım özellikle üretim ortamındaki Linux VDS sunucularda rastgele restart işlemlerinden daha sağlıklı bir yöntemdir.

⚠️ Systemctl Nedir ile Servis Başlamıyorsa Ne Yapılmalı?

Bir servisin başlamaması farklı nedenlerden kaynaklanabilir.

Örneğin:

  • ❌ Yapılandırma dosyasında hata
  • 🔒 Yetki problemi
  • 📁 Eksik dosya
  • 🔌 Kullanılan portun başka servis tarafından işgal edilmesi
  • 💾 Disk alanının dolması
  • 🧠 RAM yetersizliği
  • 📊 Process limiti
  • 🧩 Bağımlı servisin çalışmaması
  • 🔐 SSL sertifikası problemi
  • 🌐 Network problemi

gibi birçok ihtimal vardır.

Bu nedenle:

systemctl restart nginx

komutunun başarısız olması tek başına Nginx’in bozuk olduğu anlamına gelmez.

Önce:

systemctl status nginx

ardından:

journalctl -u nginx

kontrol edilmelidir.

Eğer problem kaynak sınırlarıyla ilişkili görünüyorsa Linux process ve dosya limitlerini incelemek için ulimit Nedir? Linux Sunucuda Dosya ve Process Limitleri Rehberi yazımızdan yararlanabilirsiniz.

💾 Disk Doluluğu Systemctl Nedir Problemlerine Neden Olabilir mi?

Evet.

Disk tamamen dolduğunda bazı servisler:

  • Log yazamayabilir
  • Yeni dosya oluşturamayabilir
  • PID veya socket dosyası oluşturamayabilir
  • Veritabanı işlemlerinde hata verebilir
  • Geçici dosya oluşturamayabilir

Bu nedenle bir servis beklenmedik şekilde çalışmıyorsa yalnızca systemctl çıktısına bakmak yeterli olmayabilir.

Disk kullanımını:

df -h

ile kontrol edebilirsiniz.

Disk inode durumunu:

df -i

ile inceleyebilirsiniz.

Linux sunucularda inode problemlerinin nasıl oluşabileceğini ayrıca Linux Inode Nedir? Dosya Sayısı Neden Dolabilir?rehberimizde ele alıyoruz.

🧠 Systemctl ve OOM Killer İlişkisi

Bir servis sürekli kapanıyor veya yeniden başlatılıyorsa problemin RAM kaynaklı olup olmadığını da kontrol etmek gerekir.

Örneğin:

systemctl status nginx
        ↓
Servis çalışmıyor
        ↓
journalctl -u nginx
        ↓
Process killed
        ↓
Kernel loglarını kontrol et
        ↓
OOM ihtimalini araştır

Kernel loglarında:

journalctl -k | grep -i oom

ve:

journalctl -k | grep -i "killed process"

gibi kontroller yapılabilir.

RAM kaynaklı problemlerde OOM Killer Nedir? Linux RAM Bittiğinde Ne Olur? rehberimizdeki teşhis adımlarıyla birlikte ilerlemek daha sağlıklı olur.

📊 Systemctl ve VDS Performans Analizi

Systemctl doğrudan bir performans analiz aracı değildir.

Ancak VDS üzerindeki servislerin durumunu anlamak için performans analizinin önemli bir parçasıdır.

Örneğin sunucuda yüksek CPU kullanımı varsa:

CPU yüksek
↓
Hangi process?
↓
Hangi servis?
↓
systemctl status servis
↓
journalctl -u servis

şeklinde ilerleyebilirsiniz.

Daha kapsamlı performans analizi için VDS Performans Sorunu Nedir? Yavaşlayan Sunucuyu Analiz Etme rehberimizi kullanabilirsiniz.

Process bazlı CPU, RAM ve disk kullanımını incelemek için de pidstat Nedir? CPU, RAM ve Disk Kullanan Process Nasıl Bulunur? rehberi tamamlayıcı olacaktır.

🛠️ Systemctl ile En Faydalı Komutlar

Linux sunucu yönetiminde en sık kullanacağınız systemctl komutlarını aşağıda topladık.

Servis durumunu gösterme

systemctl status nginx

Servis başlatma

systemctl start nginx

Servis durdurma

systemctl stop nginx

Servis yeniden başlatma

systemctl restart nginx

Servis yapılandırmasını yeniden yükleme

systemctl reload nginx

Açılışta otomatik başlatma

systemctl enable nginx

Otomatik başlatmayı kapatma

systemctl disable nginx

Servisi hemen etkinleştirme ve başlatma

systemctl enable --now nginx

Servisi devre dışı bırakma ve durdurma

systemctl disable --now nginx

Çalışan servisleri listeleme

systemctl list-units --type=service

Başarısız servisleri listeleme

systemctl --failed

Bir servisin etkin olup olmadığını kontrol etme

systemctl is-enabled nginx

Bir servisin çalışıp çalışmadığını kontrol etme

systemctl is-active nginx

🔐 Systemctl ile Servisleri Yönetirken Nelere Dikkat Edilmeli?

Systemctl oldukça güçlü bir araçtır ancak yanlış bir servis üzerinde yapılan işlem sunucunun çalışmasını etkileyebilir.

Özellikle şu servislerde dikkatli olunmalıdır:

  • ssh
  • network
  • systemd-networkd
  • docker
  • mysql
  • mariadb
  • nginx
  • php-fpm

Örneğin uzaktan SSH üzerinden bağlı olduğunuz bir VDS’de SSH yapılandırmasını değiştirdikten sonra doğrudan:

systemctl restart ssh

çalıştırmak yerine yapılandırmayı önce test etmek daha güvenlidir.

SSH yapılandırmasıyla ilgili daha kapsamlı kontrol için VDS Sunucuda SSH Güvenliği Nasıl Sağlanır? 10 Etkili Yöntem rehberimize bakabilirsiniz.

🧩 Systemctl ile Bir Servisin Bağımlılıkları Nasıl Görülür?

Bazı servislerin çalışabilmesi için başka servis veya sistem birimlerine ihtiyacı olabilir.

Bir servisin bağımlılıklarını görmek için:

systemctl list-dependencies nginx

kullanabilirsiniz.

Bu özellikle karmaşık sunucu altyapılarında faydalıdır.

Örneğin bir uygulama servisi çalışmıyorsa problem doğrudan uygulamanın kendisinde olmayabilir.

Bağımlı olduğu başka bir servis başarısız olmuş olabilir.

Bu durumda:

systemctl list-dependencies servis.service

ile servis ağacını incelemek sorunun kaynağını bulmayı kolaylaştırabilir.

🖥️ Systemctl VDS Sunucularda Neden Önemlidir?

VDS sunucularda aynı anda çok sayıda servis çalışabilir.

Örneğin bir web sunucusunda:

Nginx
PHP-FPM
MySQL
Redis
SSH
Cron
Docker
Monitoring

gibi birçok servis bulunabilir.

Bu servislerden birinin durması web sitesinin, API’nin, veritabanının veya başka bir uygulamanın çalışmasını etkileyebilir.

Systemctl sayesinde servislerin durumunu merkezi şekilde kontrol edebilirsiniz.

Özellikle Linux VDS yönetiminde:

systemctl
   +
journalctl
   +
top / htop
   +
vmstat
   +
pidstat
   +
sar

birlikte kullanıldığında çok daha kapsamlı bir teşhis süreci oluşturulabilir.

Geçmiş performans verilerini incelemek için sar Nedir? Linux Performans Geçmişi Nasıl Analiz Edilir? rehberimizi de kullanabilirsiniz.

🚀 Systemctl ile Servis Yönetimi İçin Örnek Senaryo

Bir web sitesinin çalışmadığını düşünelim.

İlk olarak Nginx’i kontrol ediyoruz:

systemctl status nginx

Çıktıda:

Active: failed

görüyoruz.

Son logları inceliyoruz:

journalctl -u nginx -n 50

Burada yapılandırma hatası olduğunu fark ediyoruz.

Nginx yapılandırmasını test ediyoruz:

nginx -t

Hata düzeltiliyor.

Ardından:

systemctl restart nginx

çalıştırılıyor.

Son olarak:

systemctl status nginx

kontrol ediliyor.

Eğer:

Active: active (running)

görüyorsak servis yeniden çalışmaya başlamış demektir.

Bu örnek, systemctl nedir sorusunun pratikte neden önemli olduğunu açıkça gösteriyor.

❓ Systemctl Hakkında Sık Sorulan Sorular

Systemctl nedir?

Systemctl, systemd kullanan Linux sistemlerde servisleri ve diğer systemd birimlerini yönetmek için kullanılan komut satırı aracıdır.

Systemctl hangi Linux dağıtımlarında kullanılır?

Systemd kullanan birçok modern Linux dağıtımında systemctl kullanılabilir. Ancak dağıtımın init sistemi ve servis yönetim yapısı kontrol edilmelidir.

Systemctl ile servis nasıl başlatılır?

systemctl start servis

komutu kullanılır.

Systemctl ile servis nasıl durdurulur?

systemctl stop servis

komutu kullanılabilir.

Systemctl restart ne işe yarar?

Bir servisi durdurup yeniden başlatır.

systemctl restart nginx

Systemctl enable ne işe yarar?

Servisin sistem açılışında otomatik olarak başlatılması için etkinleştirilmesini sağlar.

Systemctl disable ne işe yarar?

Servisin sistem açılışında otomatik olarak başlatılmasını devre dışı bırakır.

Systemctl ile çalışan servisler nasıl görülür?

systemctl list-units --type=service

komutu kullanılabilir.

Başarısız servisler nasıl bulunur?

systemctl --failed

komutu kullanılabilir.

Systemctl ve journalctl arasındaki fark nedir?

Systemctl servisleri yönetmek için, journalctl ise systemd journal tarafından tutulan log kayıtlarını incelemek için kullanılır.

Systemctl ile servis neden başlamıyor?

Yapılandırma hatası, yetki problemi, port çakışması, eksik dosya, kaynak yetersizliği veya bağımlı bir servisin çalışmaması gibi farklı nedenler olabilir. Bu nedenle systemctl status ve journalctl -u birlikte incelenmelidir.

Systemctl ile Linux servislerinin yönetildiği AydınCloud sunucu ortamı
Systemctl ile Linux servislerini yönetebilir, servis durumlarını kontrol edebilir ve sunucu üzerindeki servis hatalarını analiz edebilirsiniz.

🎯 Sonuç: Systemctl Nedir ve Linux Sunucularda Neden Kullanılır?

Özetlemek gerekirse systemctl nedir sorusunun cevabı, systemd tarafından yönetilen Linux servislerini kontrol etmeyi sağlayan temel komut satırı aracı şeklinde verilebilir.

Bir VDS sunucusunda:

systemctl
    ↓
Servis durumunu kontrol et
    ↓
journalctl
    ↓
Hata loglarını incele
    ↓
Sorunun kaynağını belirle
    ↓
Servisi düzelt / yapılandır
    ↓
systemctl restart

şeklinde bir çalışma mantığı kullanılabilir.

Özellikle Nginx, MySQL, PHP-FPM, SSH ve Docker gibi servislerin bulunduğu Linux sunucularda systemctl komutlarına hakim olmak günlük sistem yönetimini ciddi şekilde kolaylaştırır.

Ancak systemctl’yi yalnızca start / stop / restart komutlarından ibaret düşünmemek gerekir.

Servis durumu, başarısız unit’ler, bağımlılıklar, journalctl kayıtları, process limitleri ve VDS kaynak kullanımı birlikte değerlendirildiğinde çok daha güçlü bir sorun giderme yaklaşımı ortaya çıkar.

Bu nedenle Linux VDS yönetiminde systemctl + journalctl + performans analiz araçları birlikte düşünülmelidir.

Bir sonraki seviyede ise systemctl tarafından yönetilen servislerin neden yavaşladığını veya neden kaynak tükettiğini CPU, RAM, disk ve process bazında analiz etmek gerekir.

Paylaş:
Tüm Yazılara Dön Hemen İnceleyin → VDS Sunucu Paketleri Yüksek performanslı, tam izole VDS sunucu paketlerimizi inceleyin. Tam izole kaynak NVMe SSD %99.9 uptime

Yorum Yap

E-posta adresiniz yayınlanmayacaktır. Zorunlu alanlar işaretlenmiştir.

Yardıma mı ihtiyacınız var? Size nasıl yardımcı olabiliriz?
WhatsApp Destek Bizi Arayın E-posta Gönder