Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
06.11.2024

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

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şlangıcını otomatikleştirebilir, yönetimi kolaylaştırabilir ve Linux VPS barındırma kurulumunuzda güvenilirlik sağlayabilirsiniz

Linux Hizmetini Açılışta Başlatmak için systemd kullanın

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 önyükleme sırasında 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

WorkingDirectory yönergesini kontrol etmek içinhizmet birimi dosyanızı açın

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

WorkingDirectory satırını bulun. Şuna benzer bir şey görünmelidir( Bakınız: Hizmet Birimi Dosyası Oluşturma)

WorkingDirectory=/etc/systemd/myapp

Belirtilen dizinin var olduğunu doğrulayın

###ATP_PRO_NOTR_3_CODE_TAG_NOTR_ATP_PRO##

* /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

Dizin mevcut değilse, oluşturun

###ATP_PRO_NOTR_4_CODE_TAG_NOTR_ATP_PRO##

Hizmetinizin Kullanıcı yönergesinde belirtilen kullanıcının erişebilmesi içinuygun 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 için ç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:
    [Unit]
    Description=My Custom Application
    After=network.target
    [Service]
    ExecStart=/usr/bin/myapp
    Restart=always
    User=myuser
    WorkingDirectory=/etc/systemd/myapp
    [Install]
    WantedBy=multi-user.target
  • [Birim] Bölümü: Bu bölüm hizmet için meta veri 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şlatmak için kullanılan 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

Kullanıcının çalışma dizinine erişmek içindoğru izinlere sahip olup olmadığını kontrol edin

###ATP_PRO_NOTR_8_CODE_TAG_NOTR_ATP_PRO##

İ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

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

Çalışma dizininin var olduğundan ve doğru şekilde ayarlandığından emin olduktan sonra systemd yapılandırmasını yeniden yükleyin

###ATP_PRO_NOTR_11_CODE_TAG_NOTR_ATP_PRO##

Hizmeti yeniden başlatmayı deneyin

sudo systemctl start myapp.service

Adım 6: Durumu Kontrol Edin

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 yine de başlatılamazsa, 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 ya da açılışta başlamasını engellemeniz gerekirse, aşağıdaki komutları kullanabilirsiniz

  • Hizmeti durdurmak için
    ###ATP_PRO_NOTR_15_CODE_TAG_NOTR_ATP_PRO##
  • 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 yalnızca 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 etkili bir şekilde kurabilir ve yönetebilir, 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.

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills