
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İ
Operasyon Yöneticisi
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 Systemd ve Service Komutları Nedir Nedir
- Linux Systemd ve Service Komutları Nedir Türkçe
- Linux Systemd ve Service Komutları Nedir Nasıl Yapılır
- Linux Systemd ve Service Komutları Nedir Nasıl Kullanılır
- Sıkça Sorulan Sorular
- İlgili İçerikler
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:

sudo systemctl start nginx
Aynı işlemin eski kullanım şekli:
sudo service nginx start
İki komut benzer sonucu verebilir; fakat güncel Linux sistemlerinde önerilen yöntem çoğunlukla systemctl kullanmaktır.
| İşlem | systemctl Komutu | service 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
systemctlkomutları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 |
|---|---|---|
| Service | Arka plan servisini yönetir | `nginx.service` |
| Timer | Zamanlanmış görev çalıştırır | `backup.timer` |
| Socket | İstek gelince servis başlatır | `ssh.socket` |
| Target | Sistem 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.
| Özellik | systemd / systemctl | service |
|---|---|---|
| Güncel dağıtımlarda önerilir | Evet | Sınırlı |
| Servis durumunu ayrıntılı gösterir | Evet | Daha sınırlı |
| Otomatik başlatma yönetimi | Evet | Genellikle hayır |
| Loglarla entegre çalışır | Evet | Hayır |
| Eski sistemlerle uyumluluk | Kısmen | Evet |
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ım | Debian / Ubuntu | RHEL / 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:
systemctl list-units --type=service --state=running
Tüm servis dosyalarını görmek için:
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:
sudo systemctl start nginx
Durdurmak için:
sudo systemctl stop nginx
Yeniden başlatmak için:
sudo systemctl restart nginx
Durumunu kontrol etmek için:
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.
sudo systemctl enable nginx
Otomatik başlatmayı kapatmak için:
sudo systemctl disable nginx
Hem servisi başlatıp hem de açılışa eklemek için:
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
restartgerekmeyebilir. Destekleyen servislerdereloadkullanmak 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:
sudo systemctl status nginx
Daha ayrıntılı log görmek için:
sudo journalctl -u nginx
Son kayıtları takip etmek için:
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:
- Servis durumunu kontrol edin.
- Konfigürasyon dosyasını test edin.
- Mümkünse
reloadkullanın. - Gerekirse
restartçalıştırın. - Logları kontrol edin.
- Uygulamanın dışarıdan erişilebilir olduğunu doğrulayın.
Nginx yapılandırmasını test etmek için:
sudo nginx -t
Apache için:
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.
| Komut | Ne Yapar? | Ne Zaman Kullanılır? |
|---|---|---|
| `restart` | Servisi kapatıp yeniden açar | Büyük değişikliklerde |
| `reload` | Ayarları yeniden yükler | Kesintisiz güncellemelerde |
| `status` | Servis durumunu gösterir | Sorun analizinde |
| `journalctl` | Logları gösterir | Hata ayıklamada |
Bilgi Kutusu: Her servis
reloaddesteklemez. 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.
Bu yazıyı paylaşın

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ı


