📒 

Linux VPS hosting üzerinde uygulamaları veya hizmetleri yönetenler için, kritik hizmetlerin açılışta otomatik olarak başlamasını sağlamak kesintisiz çalışmayı sürdürmek için çok önemlidir. Güçlü ve esnek bir başlatma sistemi olan systemd‘yi kullanarak, web uygulamaları, veritabanları ve VPS ortamlarında çalışan diğer temel hizmetler için çok önemli olan, sistem başladığında hemen başlatılacak hizmetleri kolayca yapılandırabilirsiniz. Bu kılavuz, özel bir systemd hizmet birimi kurma konusunda size yol gösterecek, böylece hizmet başlatmayı otomatikleştirebilir, yönetimi kolaylaştırabilir ve Linux VPS barındırma kurulumunuzda güvenilirliği sağlayabilirsiniz. Bu adımları izleyerek, sisteminizin hizmet davranışı üzerinde daha fazla kontrol sağlayabilir ve genel işlevselliğini geliştirebilirsiniz.

Linux Hizmetini Önyükleme Sırasında Başlatmak için systemd’yi Kullanma

systemd, birçok Linux dağıtımı tarafından sistem hizmetlerini ve kaynaklarını yönetmek için kullanılan modern bir init sistemidir. Temel özelliklerinden biri, hizmetleri önyükleme sırasında otomatik olarak başlatarak kritik uygulamaların ve hizmetlerin sistem başlar başlamaz çalışır durumda olmasını sağlamasıdır. Bu makale, bir systemd hizmet birimi oluşturma ve açılışta başlamasını sağlama adımlarında size rehberlik edecektir.

Systemd nedir?

systemd, SysVinit ve Upstart gibi eski init sistemlerinin yerini alan bir init sistemidir. Sistem süreçlerini ve hizmetlerini yöneterek hizmet başlatmanın paralelleştirilmesine, daemonların isteğe bağlı olarak başlatılmasına ve daha iyi kaynak kontrolüne olanak tanır. Birim dosya yapısı ile systemd, hizmetleri, soketleri, cihazları ve diğer sistem kaynaklarını yönetmek için esnek bir yol sağlar.

Bir systemd Hizmeti Oluşturma

Systemd kullanarak bir hizmeti açılışta başlatmak için bir hizmet birimi dosyası oluşturmanız gerekir. Bu dosya, systemd ‘nin hizmeti yönetmesi için gerekli tüm bilgileri içerir. Bir hizmet birimi dosyasının nasıl oluşturulacağı ve yapılandırılacağı aşağıda açıklanmıştır:

Adım 1: Çalışma Dizinini Kontrol Edin

  1. WorkingDirectory yönergesini kontrol etmek için hizmet birimi dosyanızı açın:
    sudo nano /etc/systemd/system/myapp.service
  2. WorkingDirectory satırını bulun. Şuna benzer bir şey görünmelidir ( Bakınız: Hizmet Birimi Dosyası Oluşturma):
    WorkingDirectory=/etc/systemd/myapp
  3. Belirtilen dizinin var olduğunu doğrulayın:
    ls -l /etc/systemd/myapp

    * /path/to/myapp – kullanmak istediğiniz gerçek yol ile değiştirin. Dizinin mevcut olmadığına dair bir hata alırsanız, dizini oluşturmanız gerekir.

Adım 2: Çalışma Dizinini Oluşturun

  1. Dizin mevcut değilse, oluşturun:
    sudo mkdir -p /etc/systemd/myapp
  2. Hizmetinizin Kullanıcı yönergesinde belirtilen kullanıcının erişebilmesi için uygun izinleri ayarlayın. Örneğin, hizmetiniz myuser olarak çalışıyorsa:
    sudo chown myuser:myuser /etc/systemd/myapp

    Hizmet Birimi Dosyasını Oluşturma

    1. Linux sisteminizde bir terminal açın.
    2. Etc/systemd/system/ dizininde yeni bir hizmet birimi dosyası oluşturun. Dosya adı .service ile bitmelidir. Örneğin, myapp adlı özel bir uygulama için bir hizmet oluşturmak üzere şu komutu çalıştırırsınız:
      sudo nano /etc/systemd/system/myapp.service
    3. Aşağıdaki içeriği uygulamanız için gerektiği şekilde değiştirerek dosyaya ekleyin:
      [Birim]
      Açıklama=Özel Uygulamam
      Sonra=ağ.hedef
      [Servis]
      ExecStart=/usr/bin/myapp
      Yeniden başlat=her zaman
      Kullanıcı=myuser
      WorkingDirectory=/etc/systemd/myapp
      [Yükle]
      WantedBy=multi-user.target

      • [Birim] Bölümü: Bu bölüm, hizmet için meta veriler ve bağımlılıklar sağlar.
        • Açıklama: Hizmetin kısa bir açıklaması.
        • Sonra: Hizmetin ağ kullanılabilir olduktan sonra başlatılması gerektiğini belirtir.
      • [Hizmet] Bölümü: Bu bölüm hizmetin nasıl davranacağını tanımlar.
        • ExecStart: Hizmeti başlatacak komut. /usr/bin/myapp yerine çalıştırılabilir dosyanızın yolunu yazın.
        • Restart: Yeniden başlatma davranışını tanımlar. always, hizmetin çökmesi durumunda yeniden başlatılacağı anlamına gelir.
        • User: Hizmetin hangi kullanıcı altında çalışması gerektiğini belirtir.
        • WorkingDirectory: Hizmet için çalışma dizinini ayarlar.
      • [Yükle] Bölümü: Bu bölüm, hizmetin nasıl etkinleştirilmesi gerektiğini tanımlar.
        • WantedBy: Bu, hizmetin hangi hedef altında başlatılacağını tanımlar. multi-user.target kullanıcı hizmetleri için ortak bir hedeftir.

Adım 3: İzinleri Doğrulayın

  1. Kullanıcının çalışma dizinine erişmek için doğru izinlere sahip olup olmadığını kontrol edin:
    ls -ld /etc/systemd/myapp

    İzinlerin kullanıcının bu dizindeki dosyaları okumasına ve yürütmesine izin verdiğinden emin olun.

Adım 4: Çalışma Dizinindeki Yürütülebilir Dosyayı Test Edin

  1. Uygulamanızın bu çalışma dizininden çalışabildiğinden emin olun. Bunu kullanıcıya geçerek ve dizine giderek test edebilirsiniz:
    sudo -u myuser bash
    cd /etc/systemd/myapp
    /usr/bin/myapp
    Herhangi bir hata olmadan çalışıp çalışmadığını kontrol edin. Başarısız olursa, uygulamanın kendisinde sorun giderin.

Adım 5: systemd’yi Yeniden Yükleyin ve Hizmeti Başlatın

  1. Çalışma dizininin var olduğundan ve doğru şekilde ayarlandığından emin olduktan sonra systemd yapılandırmasını yeniden yükleyin:
    sudo systemctl daemon-reload
  2. Hizmeti yeniden başlatmayı deneyin:
    sudo systemctl start myapp.service

Adım 6: Durumu Kontrol Edin

  1. Başarılı bir şekilde başlatılıp başlatılmadığını görmek için hizmetin durumunu kontrol edin:
    sudo systemctl status myapp.service

Adım 7: Ek Hatalar için Günlükleri İnceleyin

Hizmet hala başlatılamıyorsa, ek bilgi için günlükleri inceleyin:

journalctl -u myapp.service

Adım 8: (İsteğe Bağlı) Hizmeti Durdurun ve Devre Dışı Bırakın

Hizmeti durdurmanız veya açılışta başlamasını engellemeniz gerekirse, aşağıdaki komutları kullanabilirsiniz:

  • Hizmeti durdurmak için:
    sudo systemctl stop myapp.service
  • Hizmetin önyükleme sırasında başlamasını devre dışı bırakmak için:
    sudo systemctl disable myapp.service

Sonuç

Açılışta bir Linux hizmetini başlatmak için systemd kullanmak, sistem güvenilirliğini ve yönetimini geliştiren basit bir işlemdir. Bir hizmet birimi dosyası oluşturarak uygulamanızın nasıl çalışması gerektiğini tanımlayabilir ve sisteminizle birlikte otomatik olarak başlamasını sağlayabilirsiniz. Bu yöntem sadece hizmet yönetimini basitleştirmekle kalmaz, aynı zamanda hizmet davranışını kontrol etmek için güçlü özellikler sağlar ve systemd ‘yi modern Linux sistem yönetimi için önemli bir araç haline getirir.

Bu adımlarla, kendi hizmetlerinizi etkin bir şekilde kurup yönetebilir ve Linux ortamınızın genel işlevselliğini artırabilirsiniz. Herhangi bir sorunla karşılaşırsanız, journalctl ile günlükleri incelemek neyin yanlış gittiğine dair yararlı bilgiler sağlayabilir.