Linux Systemd ve Service Komutları Nedir?
Sunucu

Linux Systemd ve Service Komutları Nedir?

Linux Systemd ve Service komutları nedir, servis başlatma, durdurma, yeniden başlatma ve durum kontrolü nasıl yapılır öğrenin.

Cenk ŞEKERCİ

Cenk ŞEKERCİ

Operasyon Yöneticisi

7 Ekim 2026
6 dk okuma

Bir Linux sunucusunda web sitesi açılmıyor, veritabanı cevap vermiyor ya da SSH erişimi sorun çıkarıyorsa ilk bakılacak yer genellikle servislerdir. Linux Systemd ve Service Komutları Nedir? Sunucu Servisleri Nasıl Başlatılır? sorusunun yanıtı, sunucu yönetiminde en temel ama en kritik konulardan biridir.

İçindekiler

Linux Systemd ve Service Komutları Nedir Ne İşe Yarar

Linux’ta systemd ve service komutları, sunucu üzerindeki servisleri yönetmek için kullanılır. Web sunucusu, veritabanı, SSH, cron, firewall ve benzeri arka plan süreçleri bu komutlarla başlatılır, durdurulur, yeniden başlatılır ve durumları kontrol edilir.

Systemd, modern Linux dağıtımlarında servis yönetiminin merkezinde yer alır. service komutu ise daha eski sistemlerden gelen, bazı dağıtımlarda uyumluluk için hâlâ kullanılabilen pratik bir komuttur.

Örneğin bir Nginx servisini başlatmak için:

Netlen Platinum Sunucu Kampanyası
bash
sudo systemctl start nginx

Aynı işlemin eski kullanım şekli:

bash
sudo service nginx start

İki komut benzer sonucu verebilir; fakat güncel Linux sistemlerinde önerilen yöntem çoğunlukla systemctl kullanmaktır.

İşlemsystemctl Komutuservice Komutu
Servis başlatma`systemctl start nginx``service nginx start`
Servis durdurma`systemctl stop nginx``service nginx stop`
Yeniden başlatma`systemctl restart nginx``service nginx restart`
Durum kontrolü`systemctl status nginx``service nginx status`

İpucu: Yeni bir sunucu yönetiyorsanız önce systemctl komutlarını öğrenmek daha mantıklıdır. Çünkü log, otomatik başlatma ve servis bağımlılıkları gibi konularda daha güçlüdür.

Linux Systemd ve Service Komutları Nedir Nedir

Systemd, Linux işletim sistemlerinde açılış sürecini ve servisleri yöneten init sistemidir. Service komutu ise servisleri yönetmek için kullanılan daha eski ve basitleştirilmiş bir arayüzdür. İkisi de servis kontrolü sağlar, ancak kapsamları aynı değildir.

Systemd yalnızca servis başlatıp durdurmaz. Aynı zamanda sistem açılış hedeflerini, servis bağımlılıklarını, zamanlayıcıları, mount işlemlerini ve log yönetimini de organize eder.

Systemd İçindeki Unit Mantığı

Systemd, yönetilen her bileşeni “unit” olarak ele alır. Servisler de genellikle .service uzantılı unit dosyalarıyla tanımlanır.

Örnek unit türleri:

  • .service: Servis süreçleri
  • .timer: Zamanlanmış görevler
  • .socket: Soket tabanlı başlatma
  • .mount: Bağlama noktaları
  • .target: Sistem çalışma hedefleri
Unit TürüGöreviÖrnek
ServiceArka plan servisini yönetir`nginx.service`
TimerZamanlanmış görev çalıştırır`backup.timer`
Socketİstek gelince servis başlatır`ssh.socket`
TargetSistem açılış seviyesini temsil eder`multi-user.target`

Systemd ve Service Arasındaki Fark

service komutu çoğu zaman systemd’ye yönlendirilerek çalışır. Ancak ayrıntılı servis analizi, log inceleme ve otomatik başlatma ayarlarında systemctl daha fazla kontrol sunar.

Özelliksystemd / systemctlservice
Güncel dağıtımlarda önerilirEvetSınırlı
Servis durumunu ayrıntılı gösterirEvetDaha sınırlı
Otomatik başlatma yönetimiEvetGenellikle hayır
Loglarla entegre çalışırEvetHayır
Eski sistemlerle uyumlulukKısmenEvet

Uyarı: Üretim ortamında bir servisi yeniden başlatmadan önce bağlı uygulamaları kontrol edin. Özellikle veritabanı, cache ve web servislerinde plansız restart kısa süreli kesintiye neden olabilir.

Linux Systemd ve Service Komutları Nedir Türkçe

Türkçe anlatımla systemd, Linux sunucuda “hangi servis ne zaman çalışacak, hata verirse ne olacak, sistem açıldığında otomatik başlayacak mı?” sorularını yöneten ana mekanizmadır. Service komutu ise servisleri daha basit sözdizimiyle kontrol etmeye yarar.

Bir sunucuda servis denildiğinde genellikle arka planda çalışan programlar anlaşılır. Apache, Nginx, MySQL, MariaDB, PostgreSQL, Redis, Docker ve SSH buna örnek verilebilir.

Sık Kullanılan Servis İsimleri

Servis adı dağıtıma veya kuruluma göre değişebilir. Örneğin Apache bazı sistemlerde apache2, bazılarında httpd olarak geçer.

YazılımDebian / UbuntuRHEL / AlmaLinux / Rocky
Apache`apache2``httpd`
Nginx`nginx``nginx`
MariaDB`mariadb``mariadb`
MySQL`mysql``mysqld`
SSH`ssh``sshd`
Cron`cron``crond`

Servis adını bilmiyorsanız şu komutla aktif servisleri listeleyebilirsiniz:

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

Tüm servis dosyalarını görmek için:

bash
systemctl list-unit-files --type=service

Linux Systemd ve Service Komutları Nedir Nasıl Yapılır

Linux’ta servis yönetimi yapmak için önce doğru servis adını bulmak, ardından başlatma, durdurma veya yeniden başlatma komutunu çalıştırmak gerekir. Güncel sistemlerde temel komut yapısı sudo systemctl işlem servis-adı şeklindedir.

Örneğin Nginx servisini başlatmak için:

bash
sudo systemctl start nginx

Durdurmak için:

bash
sudo systemctl stop nginx

Yeniden başlatmak için:

bash
sudo systemctl restart nginx

Durumunu kontrol etmek için:

bash
sudo systemctl status nginx

Servisi Sunucu Açılışında Otomatik Başlatma

Bir servisin yalnızca şu an çalışması yeterli değildir. Sunucu yeniden başladığında servisin otomatik açılması gerekiyorsa enable komutu kullanılmalıdır.

bash
sudo systemctl enable nginx

Otomatik başlatmayı kapatmak için:

bash
sudo systemctl disable nginx

Hem servisi başlatıp hem de açılışa eklemek için:

bash
sudo systemctl enable --now nginx
AmaçKomut
Şimdi başlat`sudo systemctl start servis`
Şimdi durdur`sudo systemctl stop servis`
Yeniden başlat`sudo systemctl restart servis`
Konfigürasyonu yeniden yükle`sudo systemctl reload servis`
Açılışta başlat`sudo systemctl enable servis`
Açılışta başlatmayı kapat`sudo systemctl disable servis`

İpucu: Konfigürasyon değişikliği yaptıysanız her zaman restart gerekmeyebilir. Destekleyen servislerde reload kullanmak bağlantıları kesmeden ayarları yenileyebilir.

Linux Systemd ve Service Komutları Nedir Nasıl Kullanılır

Systemd ve service komutlarını doğru kullanmak için yalnızca komutu ezberlemek yetmez; servisin durumunu, hata kayıtlarını ve açılış ayarlarını birlikte değerlendirmek gerekir. Bu yaklaşım, özellikle canlı sunucularda gereksiz kesintileri azaltır.

Bir servis çalışmıyorsa önce durumuna bakın:

bash
sudo systemctl status nginx

Daha ayrıntılı log görmek için:

bash
sudo journalctl -u nginx

Son kayıtları takip etmek için:

bash
sudo journalctl -u nginx -f

Güvenli Servis Yönetimi Sırası

Canlı bir sunucuda servis müdahalesi yaparken şu sıra daha güvenlidir:

  1. Servis durumunu kontrol edin.
  2. Konfigürasyon dosyasını test edin.
  3. Mümkünse reload kullanın.
  4. Gerekirse restart çalıştırın.
  5. Logları kontrol edin.
  6. Uygulamanın dışarıdan erişilebilir olduğunu doğrulayın.

Nginx yapılandırmasını test etmek için:

bash
sudo nginx -t

Apache için:

bash
sudo apachectl configtest

Restart ve Reload Farkı

restart, servisi tamamen durdurup yeniden başlatır. reload ise servis destekliyorsa yapılandırmayı süreci kapatmadan yeniden okur.

KomutNe Yapar?Ne Zaman Kullanılır?
`restart`Servisi kapatıp yeniden açarBüyük değişikliklerde
`reload`Ayarları yeniden yüklerKesintisiz güncellemelerde
`status`Servis durumunu gösterirSorun analizinde
`journalctl`Logları gösterirHata ayıklamada

Bilgi Kutusu: Her servis reload desteklemez. Komut hata verirse ilgili servis dosyasındaki desteklenen işlemleri kontrol etmek gerekir.

Sıkça Sorulan Sorular

Linux systemd nedir?

Systemd, Linux sistemlerde açılış sürecini, servisleri ve bazı sistem kaynaklarını yöneten init sistemidir. Sunucu açıldığında hangi servislerin hangi sırayla başlayacağını belirler. Ayrıca servislerin durumunu izleme, hata kayıtlarına erişme, otomatik başlatma ve bağımlılık yönetimi gibi görevleri üstlenir. Modern Ubuntu, Debian, AlmaLinux, Rocky Linux ve Fedora gibi dağıtımlarda yaygın olarak kullanılır.

Service komutu nedir?

service komutu, Linux’ta servisleri başlatmak, durdurmak, yeniden başlatmak ve durumlarını kontrol etmek için kullanılan eski tip bir yönetim komutudur. Güncel birçok sistemde çalışmaya devam eder; fakat çoğu zaman arka planda systemd ile uyumlu çalışır. Basit işlemler için kullanışlıdır, ancak ayrıntılı log ve açılış yönetimi için systemctl daha güçlüdür.

Systemctl ile service arasındaki fark nedir?

systemctl, systemd tabanlı sistemlerde servisleri ayrıntılı şekilde yönetir. Servis başlatma, durdurma, otomatik açılış ayarı, log entegrasyonu ve unit yönetimi sunar. service ise daha basit ve eski bir komuttur. Temel işlemleri yapabilir; ancak modern sunucularda önerilen komut çoğunlukla systemctl olur.

Linux’ta servis nasıl başlatılır?

Linux’ta bir servis başlatmak için genellikle sudo systemctl start servis-adı komutu kullanılır. Örneğin Nginx için sudo systemctl start nginx yazılır. Eski kullanımda sudo service nginx start komutu da çalışabilir. Servis başladıktan sonra systemctl status servis-adı ile gerçekten aktif olup olmadığı kontrol edilmelidir.

Linux’ta servis nasıl yeniden başlatılır?

Bir servisi yeniden başlatmak için sudo systemctl restart servis-adı komutu kullanılır. Örneğin Apache için sudo systemctl restart apache2 yazılabilir. Yeniden başlatma işlemi kısa süreli kesinti oluşturabilir. Bu yüzden canlı sistemlerde önce konfigürasyon testi yapılmalı, mümkünse reload seçeneği değerlendirilmelidir.

Servis durumunu nasıl kontrol ederim?

Servis durumunu kontrol etmek için sudo systemctl status servis-adı komutu kullanılır. Bu komut servisin aktif olup olmadığını, son hata mesajlarını ve ilgili süreç bilgilerini gösterir. Daha ayrıntılı kayıtlar için journalctl -u servis-adı komutu çalıştırılabilir. Sorun çözümünde iki komutu birlikte kullanmak daha sağlıklı sonuç verir.

Enable ve start arasındaki fark nedir?

start, servisi o anda çalıştırır. Ancak sunucu yeniden başlatıldığında servis otomatik açılmayabilir. enable ise servisin sistem açılışında otomatik başlamasını sağlar. İkisini birlikte yapmak için sudo systemctl enable --now servis-adı komutu kullanılabilir. Bu komut hem servisi hemen başlatır hem de açılışa ekler.

Reload komutu ne işe yarar?

reload, servisi tamamen kapatmadan yapılandırma dosyalarını yeniden okumasını sağlar. Özellikle web sunucularında kesintiyi azaltmak için kullanışlıdır. Ancak her servis reload desteklemez. Eğer desteklenmiyorsa komut hata verebilir veya restart gerekebilir. Yapılandırma değişikliklerinden önce ilgili servisin test komutunu çalıştırmak iyi bir alışkanlıktır.

Journalctl ne için kullanılır?

journalctl, systemd tarafından tutulan sistem ve servis loglarını görüntülemek için kullanılır. Belirli bir servisin kayıtlarını görmek için journalctl -u servis-adı komutu çalıştırılır. Canlı log takibi için -f parametresi eklenebilir. Servis neden başlamıyor, hangi hata oluştu gibi soruların cevabı çoğu zaman journalctl çıktısında bulunur.

Servis adı nasıl bulunur?

Servis adını bulmak için systemctl list-units --type=service veya systemctl list-unit-files --type=service komutları kullanılabilir. Ayrıca paket adına göre tahmin yapmak da mümkündür; ancak her dağıtım aynı adı kullanmaz. Örneğin Apache, Ubuntu’da apache2, RHEL tabanlı sistemlerde httpd olarak geçebilir.

İlgili İçerikler

  • Linux Sunucu Yönetimi Temel Komutları
  • SSH Nedir ve Güvenli SSH Ayarları Nasıl Yapılır?
  • Nginx Kurulumu ve Temel Yapılandırma Rehberi
  • Linux Log Dosyaları Nerede Bulunur?
  • Ubuntu Sunucuda Güvenlik Ayarları Nasıl Yapılır?

Linux servis yönetimini düzenli öğrenmek, sunucuda sorun yaşandığında paniği azaltır. Hosting veya sunucu altyapınızda servis yönetimi, performans ve güvenlik tarafında daha profesyonel destek almak isterseniz Netlen’in sunucu ve hosting çözümlerini inceleyebilirsiniz.

Netlen'i Google'da Takip Edin

En güncel rehberlerimize, duyurularımıza ve teknik içeriklerimize Google üzerinden öncelikli ulaşmak için Netlen'i tercih ettiğiniz kaynaklar arasına ekleyin.

GoogleGoogle'da Tercih edilenkaynak olarak ekleyin

Bu yazıyı paylaşın

Cenk ŞEKERCİ

Yazar Hakkında

Cenk ŞEKERCİ

Operasyon Yöneticisi

Bulut teknolojileri, ağ altyapıları ve veri merkezi operasyonları üzerine çalışıyorum. Öğrendiğim yeni teknolojileri ve sahada karşılaştığım gerçek deneyimleri anlaşılır şekilde paylaşmayı seviyorum.

Yorumlar

Bu yazı hakkında okuyucu yorumları