Saya telah menginstal pimd
layanan melalui apt
. Ini dilengkapi dengan systemd
file unit hulu ( /lib/systemd/system/pimd.service
).
Saya ingin agar layanan di-restart ketika karena beberapa alasan terbunuh, maka saya ingin menambahkan baris Restart = always
dalam file unit.
Namun, saya tidak ingin memodifikasi file unit hulu.
Apakah ada solusi untuk ini?
Jawaban:
Anda memiliki dua opsi:
Salin file unit dari
/lib/systemd/system/
ke/etc/systemd/system/
.Dan kemudian buat modifikasi Anda
/etc/systemd/system/pimd.service
untuk sepenuhnya menimpa file unit yang disediakan oleh pengelola paket.Perintah
systemctl edit --full <service-name>
mengotomatiskan ini untuk Anda.Anda dapat mengubah atau menambahkan pengaturan konfigurasi khusus untuk suatu unit, tanpa harus memodifikasi file unit dengan membuat
.conf
file dalam direktori drop-in/etc/systemd/system/<unit-name>.<unit-type>.d/
yaitu membuat
/etc/systemd/system/pimd.service.d/restart.conf
Perintah
systemctl edit <service-name>
melakukan langkah-langkah ini untuk Anda.Lihat
man systemd.unit
sumber
systemctl edit <service-name>
systemctl edit --full <service-name>
.Dokumentasi RHEL merekomendasikan dua cara:
/etc/systemd/system/[name-goes-here].service.d/config_name.conf
Dalam hal ini file tersebut harus mengandung sesuatu seperti ini:
Inilah yang
systemctl edit [name-goes-here]
dilakukannya, ia menciptakan direktori itu danoverride.conf
di dalamnya.Saya akan mencoba opsi satu tetapi keduanya opsi yang layak. Either way ingat untuk menjalankan
systemctl daemon-reload
setelah melakukan perubahan.Dokumentasi RHEL tentang Membuat dan Memodifikasi sistem dan File Unit
sumber
Pertimbangkan untuk menggunakan skrip untuk membaca konfigurasi hulu, memodifikasinya, dan meludahkannya ke file drop-in.
Sebagai contoh, saya menggunakan Chef dan inilah sepotong ruby (perpustakaan) yang mem-parsing file systemd marathon unit untuk mendapatkan ExecStart asli darinya
Kemudian dalam resep, saya membuat file drop-in untuk menambahkan opsi ke ExecStart
sumber