it-swarm-id.com

Menulis file layanan systemd dasar

Saya mengembangkan aplikasi Nodejs yang berinteraksi dengan pengguna melalui HTTP di localhost. Praktis tidak ada parameter dan daemon secara virtual tidak memiliki dependensi dan hanya perlu di-up pada saat masuk.

Saya ingin mengikuti idiom pada setiap platform untuk skrip start-up, dan itu berarti Upstart di Ubuntu dan systemd di Fedora.

  • Apakah ada tutorial yang bagus untuk menulis file sistem systemd?
  • Apakah ada 'praktik terbaik' yang harus diperhatikan?

Saya telah menemukan sumber daya ini:

Saya kebanyakan mencari jenis API sebagai referensi, serta format dasar untuk diikuti.

106
beatgammit

Saya akan mulai dengan halaman manual Systemd . Mereka mewakili sumber daya yang komprehensif dari sistem dan layanan.

Ada juga freedesktop Systemd FAQs .

26
jasonwryan

Contoh berikut diilhami oleh tautan ini, yang sebenarnya tidak menyebutkan semua langkah dan terdaftar hanya untuk mengkredit sumbernya: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files .html

Langkah 1 : Saya membuat file ini (catatan lokasi) yang pada dasarnya menjalankan proses bash dengan argumen yang diperluas. Anda dapat menjalankan perintah Anda sendiri yang bisa berbeda dari bash.

[[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

Langkah 2 :

Muat ulang systemd:

systemctl daemon-reload

Mulai layanan baru:

systemctl enable foo

(Anda juga bisa disable itu)

(opsional) Langkah 3 : Ini akan mulai secara otomatis saat reboot berikutnya ke mode multi-pengguna (jalankan level 3) tetapi jika Anda ingin segera memulainya :

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

Pembaruan: Untuk kelengkapan, saya harus menambahkan bahwa ubion bionik tampaknya memiliki halaman manual yang sangat menyeluruh. RTFM di sini

184
necromancer
4
caracal