Giriş

Systemd, modern Linux dağıtımları tarafından sistem ve hizmet süreçlerini yönetmek için kullanılan güçlü bir init sistemidir. Ana özelliklerinden biri, hizmetlerin başlangıçta otomatik olarak başlatılabilmesidir. Bu makale, Systemd kullanarak bir hizmetin başlangıçta başlatılması için yapılandırma sürecini adım adım açıklayacak ve kritik uygulamalarınızın sistem her yeniden başlatıldığında güvenilir bir şekilde çalışmasını sağlayacaktır.

Systemd Hizmetlerini Anlamak

Systemd, hizmetleri tanımlamak ve yönetmek için birim dosyaları kullanır. Bu birim dosyaları şunlarda saklanır:

  • Sistem genelindeki hizmetler: /etc/systemd/system/ ve /lib/systemd/system/
  • Kullanıcıya özel hizmetler: ~/.config/systemd/user/

Bir hizmet birim dosyası genellikle .service uzantısına sahiptir ve Systemd’ye hizmeti nasıl yöneteceğini belirten yapılandırma direktiflerini içerir.

Bir Systemd Hizmet Dosyası Oluşturma

Bir hizmetin başlangıçta başlatılması için bir Systemd hizmet dosyası oluşturmanız gerekir. İşte özel bir hizmet oluşturmanın bir örneği.

1. Hizmet Dosyasını Oluşturun

Yeni bir hizmet dosyasını bir metin editöründe açmak için aşağıdaki komutu çalıştırın:

sudo nano /etc/systemd/system/myservice.service

2. Hizmet Yapılandırmasını Tanımlayın

Aşağıdaki içeriği ekleyin, uygulamanıza göre değiştirin:

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/

[Install]
WantedBy=multi-user.target

Açıklama:

  • After=network.target: Hizmetin ağ mevcut olduğunda başlamasını sağlar.
  • ExecStart=/usr/bin/myapp: Hizmeti başlatmak için komutu tanımlar.
  • Restart=always: Hizmetin başarısızlık durumunda yeniden başlatılmasını sağlar.
  • User=myuser ve Group=mygroup: Hizmeti belirli bir kullanıcı ve grup altında çalıştırır.
  • WantedBy=multi-user.target: Hizmetin çoklu kullanıcı modunda başlamasını sağlar (çoğu sunucu için varsayılan çalışma seviyesi).

3. Systemd’yi Yenileyin ve Hizmeti Etkinleştirin

Hizmet dosyası oluşturulduktan sonra, yeni hizmeti tanımak için Systemd’yi yenileyin:

sudo systemctl daemon-reload

Hizmeti başlangıçta başlatmak için etkinleştirin:

sudo systemctl enable myservice.service

4. Hizmeti Başlatın ve Doğrulayın

Hizmeti manuel olarak başlatın:

sudo systemctl start myservice.service

Hizmet durumunu kontrol edin:

sudo systemctl status myservice.service

Her şey doğru yapılandırılmışsa, hizmetin çalıştığını belirten bir çıktı görmelisiniz.

Hizmeti Yönetme

Systemd hizmetinizi yönetmek için bazı yararlı komutlar:

  • Hizmeti yeniden başlatın:
    sudo systemctl restart myservice.service
  • Hizmeti durdurun:
    sudo systemctl stop myservice.service
  • Hizmetin başlangıçta başlamasını devre dışı bırakın:
    sudo systemctl disable myservice.service
  • Hizmetle ilgili günlükleri görüntüleyin:
    journalctl -u myservice.service --no-pager

Sonuç

Hizmetleri başlangıçta başlatmak için Systemd kullanmak, kritik uygulamaların bir sistem yeniden başlatıldığında çalışmaya devam etmesini sağlamak için basit ve etkili bir yoldur. Bir Systemd hizmet dosyasını doğru bir şekilde yapılandırarak, başlangıçta etkinleştirerek ve systemctl ile yöneterek, Linux ortamınızın güvenilirliğini ve otomasyonunu artırabilirsiniz.