/etc/systemd/service/myapp.*.service
にたくさんのサービスファイルがあります
それぞれに次のような線があります…
User=Foo
…そして、これらすべての.serviceファイルを変更して、すべてが言うようにする必要があります…
User=Bar
これを効率的に行うにはどうすればよいですか?
承認された回答:
ファイルを変更する必要があると誰が言いますか? ☺
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
この方法では、バニラサービスの定義を元に戻すのがやや簡単です。
rm -- /etc/systemd/service/myapp.*.service.d/change-user.conf
これらすべてを1つのファイルにする もちろん、これは一連のサービス全体に適用され、ハードリンクを使用するための簡単な演習にすぎません。
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
もちろん、これは、パッケージで提供され、ランタイムで生成されたユニットでこの種のことを行う公式の方法です。あなたはではないはずです そのようなユニットファイルを変更します。
さらに読む
- レナートポッターリング(2013-10-07)。
systemd.unit
。 systemdのマニュアルページ。 freedesktop.org。