システム化された人は環境ファイルが好きではありません。

システム化された人は環境ファイルが好きではありません。

以下の例のように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 - 開発。

を使用するEnvironmentFile=ことはほとんどいつも悪い考えであり、パッケージ作成者は私たちが取り除きたいと思うまさにその狂気を再導入するように誘導するので、決して追加しないでください/etc/default//etc/sysconfig/
— レナルト・ペトリング(2015-07-22)。ユニットファイル全体に変数を追加することを検討してください。。システムエラー#618。 GitHub。

おすすめ記事