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ı:
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:
- [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.
- [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.
- [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:
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:
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.
Bir yanıt yazın