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

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

upstart現在使用するために課題を書き直していますが、systemd次のことを知りたいです。

「基本」の場所はどこですか?EnvironmentFile

入ることもできる/etc/environment

/etc/systemd/service.orの他のすべてのサービスファイルと一緒に存在する可能性がありますが、/run/systemd/systemその場所に/lib/systemd/system他のコンテンツは表示されません。EnvironmentFileService

私も議論/etc/default/した/etc/<PACKAGE_NAME>

それを置く文書化された「正常な」場所はありません。私が見た多くの例は、再起動時に消去され、ファイルは起動または再起動時に参照できる/tmp/<FILE_NAME>ように保存する必要があるため理解できないようです。/tmpService


背景:インストールする前に、インストール前(管理者スクリプトを使用して)Debianパッケージを構築しており、EnvironmentFileサービスが起動/再起動されるたびにこのファイルを使用できる必要があることを知っています。

ベストアンサー1

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

だから一つもありません。

長年にわたり、一部のsystemdの人々は、環境ファイルが最初にsystemdに提供されるべきではないメカニズムであることを公に明らかにしました。

最終的に、デフォルトのsystemdメカニズムはサービス単位ファイル自体であり、環境変数はキーを介してEnvironment=設定されます。彼らの意見では、管理者によって定義された変数またはシステム固有の変数を使用してサービス環境をカスタマイズすることは、単にデバイス.confのスニペットファイルを配置し、さらに多くのキーを使用して別の環境変数を設定するという問題ですEnvironment=

(しかし正直なところ、コンテンツをEnvironmentFile=[… ]/etc/sysconfig本当に消えなければならない赤い憎しみもあります。全体の概念に欠陥があります。新しいものを追加すると/run/sysconfig/確かに悪くなります。 )

EnvironmentFile=おそらく最初から追加しないでください。パッケージャは、ユニットファイルが管理構成の対象となり、管理構成として扱われる必要があり、ユニットファイルの構成を別々のファイルに分割することは不必要な間接的な非常にEnvironmentFiles=無意味なゲームであると誤解します。

— レナルト・ペトリング(2015-12-09)。「環境ファイル」の問合せ。 systemd - 開発。

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

ボーナスコンテンツ

daemontools 世界に環境があります。目次もちろん、読むにはenvdir/コマンドを使用してください。s6-envdirdaemontoolsの標準や要件ではありませんが、習慣一部のツールと一貫して使用できるアプローチは、環境ディレクトリに名前を付け、envプログラムやその他のコンテンツと共にサービスディレクトリに配置することです。run

おすすめ記事