Saya memiliki banyak file layanan di /etc/systemd/service/myapp.*.service
Masing-masing memiliki garis yang terlihat seperti…
User=Foo
…dan saya perlu mengubah semua file .service ini sehingga semuanya mengatakan…
User=Bar
Bagaimana cara melakukannya secara efisien?
Jawaban yang Diterima:
Siapa bilang Anda perlu mengubah file sama sekali?
find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' | while read -r i do printf '[Service]\nUser=%s\n' 'Bar' > ${i}.d/change-user.conf done
Mendapatkan kembali definisi layanan vanilla agak lebih mudah dengan cara ini.
rm -- /etc/systemd/service/myapp.*.service.d/change-user.conf
Membuat ini semua satu file tunggal yang berlaku di banyak layanan tentu saja hanya latihan sederhana dalam penggunaan tautan keras.
install -d /etc/systemd/temp printf '[Service]\nUser=%s\n' 'Bar' > /etc/systemd/temp/change-user.conf find /etc/systemd/service/ -maxdepth 1 -name 'myapp.*.service' | while read -r i do ln /etc/systemd/temp/change-user.conf ${i}.d/change-user.conf done
Ini tentu saja cara resmi untuk melakukan hal semacam ini dengan unit yang dipasok paket dan dihasilkan runtime, terlebih lagi. Anda seharusnya tidak untuk mengubah file unit tersebut.
Bacaan lebih lanjut
- Puisi Lennart (2013-10-07).
systemd.unit
. halaman manual systemd. freedesktop.org.
Linux – Data Mana yang Harus Dikecualikan Dari File Log, Pesan Kesalahan, Dll Jika Diposting Online?
_path_files Dan Compadd Abaikan-file Parameter?