07 Eylül 2026 12:10

Muslu Y.

Nginx

nginx servisi en son ne zamanlar yeniden başlatıldığını görmek

Anasayfa

Nginx

nginx servisi en son ne zamanlar yeniden başlatıld...

Nginx Ne Zaman Başlatıldı? journalctl ile Servis Geçmişini Takip Etmek

Sunucunuzda çalışan bir servisin ne zaman ayağa kalktığını, kaç kez yeniden başlatıldığını ya da beklenmedik şekilde çöküp çökmediğini bilmek istediğiniz anlar olur. systemctl status size sadece şu anki durumu gösterir; geçmişe dönük bir kayıt için systemd’nin log yöneticisi olan journalctl’a bakmak gerekir.

Bu yazıda, nginx’in son 30 gün içinde kaç kez başlatıldığını tek satırlık bir komutla nasıl bulacağımızı inceleyeceğiz:

journalctl -u nginx --since "30 days ago" | grep "Started"

Komut Ne Yapıyor?

Komutu parçalarına ayıralım:

journalctl — systemd’nin merkezi log sistemine (journal) erişim sağlayan araç. Sunucudaki tüm servislerin logları buradan okunabilir.

-u nginx — sadece nginx.service birimine ait logları filtreler. Bu bayrak olmadan tüm sistem logları önünüze dökülür.

--since "30 days ago" — son 30 gün ile sınırlı bir zaman aralığı belirler. Bunun yerine "2026-08-01", "yesterday" ya da "2 hours ago" gibi ifadeler de kullanılabilir.

| grep "Started" — journal çıktısı içinden sadece "Started nginx..." satırlarını süzer; yani servisin başlatıldığı anları listeler.

Örnek Çıktı

Komutu çalıştırdığınızda şuna benzer bir çıktı görürsünüz:

Aug 12 03:14:02 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.
Aug 20 09:41:17 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.
Sep 05 22:03:55 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.

Her satır, nginx’in o tarihte (yeniden) başlatıldığını gösterir. Beklenmedik bir sıklıkta tekrar eden satırlar görüyorsanız, bu genelde bir sorunun (crash, out-of-memory kill, manuel restart alışkanlığı vb.) işaretidir.

"Started" Dışında Nelere Bakılabilir?

Aynı mantıkla farklı anahtar kelimelerle filtreleme yaparak servisin tüm yaşam döngüsünü izleyebilirsiniz:

# Durdurulma anları

journalctl -u nginx --since "30 days ago" | grep "Stopped"

# Reload (yeniden yükleme) anları — restart’tan farklıdır, worker’lar yenilenir

journalctl -u nginx --since "30 days ago" | grep -i "reload"

# Başarısız (failed) başlangıçlar

journalctl -u nginx --since "30 days ago" | grep -i "failed"

Neden İşe Yarar?

Kesinti analizi: Bir müşteri "sitede sabah kısa bir kesinti oldu" dediğinde, o saatte gerçekten bir restart olup olmadığını saniyeler içinde doğrulayabilirsiniz.

Otomasyon takibi: Certbot yenilemesi, deploy script’i veya bir cron job nginx’i restart ediyorsa, bunun planlandığı gibi çalışıp çalışmadığını kontrol edebilirsiniz.

Kararlılık göstergesi: Bir servis kısa aralıklarla sürekli restart oluyorsa (crash-loop), bu satırların sıklığı bunu hemen ele verir.

journalctl -u <servis-adı> --since "..." | grep "..." kalıbı, sadece nginx için değil — MySQL, Redis, Docker veya herhangi bir systemd servisi için de aynı şekilde kullanılabilir. Sunucu sorunlarını "ne zaman oldu, kaç kez oldu" sorularıyla debug ederken elinizin altında bulunması gereken temel komutlardan biridir.

Makdos Bilişim Teknolojileri 2015 - 2025