Kapatmak için ESC tuşuna basın

Linux’ta Servis (systemd) Oluşturma ve Uygulamayı Başlatma

Linux işletim sistemlerinde servisler, arka planda çalışan, sistem başlatıldığında otomatik olarak başlayan ve belirli görevleri yerine getiren programlardır. Bu blog yazısında, Linux’ta servis oluşturmanın temel adımlarını açıklayacağım.

Adım 1: Servis Dosyası Oluşturun

Şimdi, systemd tarafından kullanılacak bir servis dosyası oluşturmamız gerekiyor. “/etc/systemd/system/” dizininde “serve.service” adında bir dosya oluşturun buradaki serve sizin servis olarak ekleyeceğiniz uygulamanın adı olmalı:

Bash
sudo nano /etc/systemd/system/serve-app.service

Nano düzenleme penceresine aşağıdaki örnek servis dosyasını düzenleyip yapıştırın.

[Unit]
Description=Serve App
After=network.target

[Service]
ExecStart=/home/ubuntu/.nvm/versions/node/v16.20.2/bin/node serve.js
WorkingDirectory=/home/ubuntu/apps/
Restart=always

[Install]
WantedBy=multi-user.target

CTRL + O sonrasında ENTER tuşuna basarak kaydedin. CTRL + X yaparak nano penceresini kapatın.

Servis Dosyasının Alabileceği Parametreler

systemd servis dosyaları, bir dizi parametreyi destekler ve bu parametreler ile servisinizin davranışlarını belirlersiniz. İşte yaygın olarak kullanılan bazı systemd servis dosyası parametreleri:

  1. [Unit]: Bu bölüm servis ünitesi ile ilgili genel bilgileri içerir.
    • Description: Servisin açıklamasını içerir. Bu servisin ne yaptığını genel olarak ifade eder.
    • After: Bu servisin hangi hedeften sonra çalışacağını belirtir.
    • Before: Bu servisin hangi hedeften önce çalışacağını belirtir.
    • Requires: Bu servisin başlamadan önce belirtilen birimlerin başlaması gerektiğini belirtir.
    • Wants: Bu servisin başlamadan önce belirtilen birimlerin başlatılmasını ister.
    • Conflicts: Bu servisin başlamadan önce belirtilen birimlerin başlamamasını ister.
    • OnFailture: Bu servis başarısız olduğunda başka bir servisi başlatır.
  2. [Service]: Bu bölüm, servisin çalışma özelliklerini belirtir.
    • ExecStart: Bu servisin başlatılması için kullanılan komutu belirtir.
    • ExecStop: Bu servisin durdurulması için kullanılan komutu belirtir.
    • Restart: Bu servis başarısız olduğunda veya çöktüğünde ne yapılacağını belirtir.
      • no: Bu servis çöktüğünde veya başarısız olduğunda kapanır ve manuel müdahale gerekir.
      • always: Bu servis çöktüğünde veya başarısız olduğunda her zaman otomatik olarak yeniden başlatır.
      • on-success: Bu servis başarılı bir şekilde sonlandığında (exit code: 0 yani çökmeyen durumda) otomatik olarak yeniden başlatır.
      • on-failture: Bu servis başarısız olduğunda (çöktüğünde) otomatik yeniden başlatılacağını belirtir.
      • on-abnormal: Bu servisin anormal bir şekilde sona erdiğinde (çöktüğünde veya beklenmedik bir durumda kapandığında) otomatik olarak yeniden başlatır.
      • on-abort: Bu servis bir abort sinyali aldığında otomatik olarak yeniden başlatır.
    • User: Bu servisin hangi kullanıcı kimliğiyle çalışacağını belirler.
    • Group: Bu servisin hangi grup kimliğiyle çalışacağını belirler.
    • WorkingDirectory: Bu servisin çalıştırılacağı dizini belirler.
    • Environment: Servisin çalıştırılacağı ortam değişkenlerini belirler.
  3. [Install]: Bu bölüm, servisin yüklendiği hedefleri belirtir.
    • WantedBy: Bu servisin hangi hedefe bağlı olduğunu belirtir.
    • RequiredBy: Bu servisin hangi hedef tarafından gerekliğinin olacağını belirler.
    • Alias: Bu servise alternatif isimler atar.

Adım 2: Servisi Aktif Edin ve Başlatın

Servis dosyasını oluşturduktan sonra, systemd‘ye bu yeni servisi bildirmek ve başlatmak için aşağıdaki komutları kullanın:

Bash
sudo systemctl daemon-reload
sudo systemctl start serve-app.service
sudo systemctl enable serve-app.service

Adım 3: Servisin Durumunu Kontrol Edin

Servisin durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

Bash
sudo systemctl status serve-app.service

Bu komut, servisin durumu, başlama zamanı ve olası hataları gösterir.

Sonuç

Bu yazıda, Linux’ta servis oluşturmanın adımlarını anlamak için temel bilgileri edindik. Servis oluşturma süreci, kendi uygulamalarımızı otomatikleştirmemize ve sistemlerimizi daha etkili bir şekilde yönetmemize olanak tanıyan güçlü bir araç olan systemd’in kullanımını öğrendik.

Bayram Alaçam

Merhaba, Ben Bayram Bursa'da yaşıyorum. Geniş Bir deneyime sahip olmakla birlikte, özellikle Javascript alanında uzmanlaştım ve bu alandaki tüm detaylarla ilgileniyorum. Mobil uygulama geliştirme konusunda da derin bir ilgi ve yetenek setine sahibim. Backend, veritabanı yönetimi ve DevOps konularında da deneyimliyim ve her projede güvenilir, ölçeklenebilir çözümler sunabilirim. Yeni teknolojileri öğrenmek benim için bir tutku. Hızla değişen teknoloji dünyasında güncel kalmak ve son trendleri takip etmek benim için önemli bir prensiptir

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir