以下の例のようにsystemdサービスを設定できますか?気づきたいユーザー、グループそして目次/etc/default/service などの追加ファイルで構成します。
私のターゲット環境はOpenSuse Linux 15.1です。システム234
[Unit]
Description=Sample Service
After=network.target
[Service]
User=$USER
Group=$GROUP
Type=simple
WorkingDirectory=$DIR
ExecStart=/opt/123/service.sh start
ExecStop=/opt/123/service.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
PS:service.shで設定ファイルの解析を実行し、ユーザー固有のタスクを実行することは依然として可能です。しかし、シンプルで直接的な方法を知りたいです。
答え1
システム化された人は環境ファイルが好きではありません。
/etc/default/example
この場合はもちろん環境ファイルです。
長年にわたり、一部のsystemdの人々は、環境ファイルが最初にsystemdに提供されるべきではないメカニズムであることを公に明らかにしました。
結局のところ、デフォルトのsystemdメカニズムはサービス単位ファイル自体です。彼らの観点からは、管理者定義またはシステム固有のコンテンツカスタマイズサービスを使用すると、単に.conf
デバイスのフラグメントファイルに入れて、プライマリデバイスファイルのキーを追加または置き換えることができます。
パラメータ化された設定を含むパッケージ定義を使用してユーザーの基本サービス単位を作成することは、多くのパッケージと同様に、テンプレートから実際のサービス単位を生成するためのテキスト処理とマクロ置換の問題です。
(しかし正直なところ、コンテンツをEnvironmentFile=
。[… ]/etc/sysconfig
本当に消えなければならない赤い憎しみもあります。全体の概念に欠陥があります。新しいものを追加すると/run/sysconfig/
確かに悪くなります。 )
EnvironmentFile=
おそらく最初から追加しないでください。パッケージャは、ユニットファイルが管理構成の対象となり、管理構成として扱われる必要があり、ユニットファイルの構成を別々のファイルに分割することは不必要な間接的な非常にEnvironmentFiles=
無意味なゲームであると誤解します。
— レナルト・ペトリング(2015-12-09)。「環境ファイル」の問合せ。 systemd - 開発。
を使用する— レナルト・ペトリング(2015-07-22)。ユニットファイル全体に変数を追加することを検討してください。。システムエラー#618。 GitHub。EnvironmentFile=
ことはほとんどいつも悪い考えであり、パッケージ作成者は私たちが取り除きたいと思うまさにその狂気を再導入するように誘導するので、決して追加しないでください/etc/default/
。/etc/sysconfig/