it-swarm-tr.com

Temel systemd hizmet dosyalarını yazma

Kullanıcının localhost üzerinde HTTP ile etkileşime girdiği bir Nodejs uygulaması geliştiriyorum. Pratikte hiçbir parametre yoktur ve arka plan programının neredeyse hiç bağımlılığı yoktur ve sadece oturum açma süresine göre olması gerekir.

Başlangıç ​​komut dosyaları için her platformdaki deyimleri takip etmek istiyorum ve bu Ubuntu'da Upstart ve Fedora'da systemd anlamına geliyor.

  • Systemd sistem dosyalarını yazmak için iyi öğreticiler var mı?
  • Dikkat edilmesi gereken 'en iyi uygulamalar' var mı?

Bu kaynakları buldum:

Çoğunlukla referans olarak bir API ve takip edilecek temel bir biçim arıyorum.

106
beatgammit

Systemd kılavuz sayfaları ile başlardım. Sistem ve hizmetlerin kapsamlı bir kaynağını temsil ederler.

Ayrıca freedesktop Systemd SSS vardır.

26
jasonwryan

Aşağıdaki örnek, aslında tüm adımlardan bahsetmeyen ve yalnızca kaynağı kredilendirmek için listelenen bu bağlantıdan esinlenmiştir: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files html

Adım 1 : Temelde genişletilmiş bir argümanla bash işlemini başlatan bu dosyayı (not konumu) oluşturdum. Bash'dan farklı olabilecek kendi emrinizi atabilirsiniz.

[[email protected] ~]# cat /etc/systemd/system/foo.service 
[Unit]
Description=foo

[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"

[Install]
WantedBy=multi-user.target

2. Adım :

systemd öğesini yeniden yükle:

systemctl daemon-reload

Yeni hizmeti başlatın:

systemctl enable foo

(benzer şekilde disable it)

(isteğe bağlı) 3. Adım : Çok kullanıcılı modda bir sonraki önyüklemede otomatik olarak başlamalıdır (3. seviye çalıştır), ancak hemen başlatmak istiyorsanız :

systemctl start foo
systemctl status foo # optional, just to verify

Güncelleme: Tamlık için, ubuntu biyonik çok kapsamlı bir adam sayfası gibi görünüyor eklemeliyim. burada RTFM

184
necromancer
4
caracal