GNU/Linux >> Linux の 問題 >  >> Linux

一連のSystemdサービスファイルのユーザーを変更するにはどうすればよいですか?

/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。

Linux
  1. ファイルとフォルダーのアクセス許可を変更する方法を学ぶ

  2. CentOS/RHEL 7 および 8 で Systemd を使用してプロセスのリソース制限を設定する方法

  3. systemd サービスの ulimit 値を設定する方法

  1. systemd サービスの出力をファイルにリダイレクトする方法

  2. systemd サービスを停止する方法

  3. あるユーザーに属するすべてのファイルを別のユーザーに変更するにはどうすればよいですか?

  1. LinuxでSystemdサービスを作成する方法

  2. root ユーザーのファイル許可はどのように機能しますか?

  3. systemd サービスが再起動された場合にメールを送信する方法は?