
upstart
現在使用するために課題を書き直していますが、systemd
次のことを知りたいです。
「基本」の場所はどこですか?EnvironmentFile
?
入ることもできる/etc/environment
/etc/systemd/service
.orの他のすべてのサービスファイルと一緒に存在する可能性がありますが、/run/systemd/system
その場所に/lib/systemd/system
他のコンテンツは表示されません。EnvironmentFile
Service
私も議論/etc/default/
した/etc/<PACKAGE_NAME>
それを置く文書化された「正常な」場所はありません。私が見た多くの例は、再起動時に消去され、ファイルは起動または再起動時に参照できる/tmp/<FILE_NAME>
ように保存する必要があるため理解できないようです。/tmp
Service
背景:インストールする前に、インストール前(管理者スクリプトを使用して)Debianパッケージを構築しており、EnvironmentFile
サービスが起動/再起動されるたびにこのファイルを使用できる必要があることを知っています。
答え1
システム化された人は環境ファイルが好きではありません。
だから一つもありません。
長年にわたり、一部のsystemdの人々は、環境ファイルが最初にsystemdに提供されるべきではないメカニズムであることを公に明らかにしました。
最終的に、デフォルトのsystemdメカニズムはサービス単位ファイル自体であり、環境変数はキーを介してEnvironment=
設定されます。彼らの意見では、管理者によって定義された変数またはシステム固有の変数を使用してサービス環境をカスタマイズすることは、単にデバイス.conf
のスニペットファイルを配置し、さらに多くのキーを使用して別の環境変数を設定するという問題ですEnvironment=
。
(しかし正直なところ、コンテンツをEnvironmentFile=
。[… ]/etc/sysconfig
本当に消えなければならない赤い憎しみもあります。全体の概念に欠陥があります。新しいものを追加すると/run/sysconfig/
確かに悪くなります。 )
EnvironmentFile=
おそらく最初から追加しないでください。パッケージャは、ユニットファイルが管理構成の対象となり、管理構成として扱われる必要があり、ユニットファイルの構成を別々のファイルに分割することは不必要な間接的な非常にEnvironmentFiles=
無意味なゲームであると誤解します。
— レナルト・ペトリング(2015-12-09)。「環境ファイル」の問合せ。 systemd - 開発。
を使用する— レナルト・ペトリング(2015-07-22)。ユニットファイル全体に変数を追加することを検討してください。。システムエラー#618。 GitHub。EnvironmentFile=
ことはほとんどいつも悪い考えであり、パッケージ作成者は私たちが取り除きたいと思うまさにその狂気を再導入するように誘導するので、決して追加しないでください/etc/default/
。/etc/sysconfig/
ボーナスコンテンツ
daemontools 世界に環境があります。目次もちろん、読むにはenvdir
/コマンドを使用してください。s6-envdir
daemontoolsの標準や要件ではありませんが、習慣一部のツールと一貫して使用できるアプローチは、環境ディレクトリに名前を付け、env
プログラムやその他のコンテンツと共にサービスディレクトリに配置することです。run