インストールされた(起動していない)システムでシステムサービスを生成する「正しい方法」とは何ですか?

インストールされた(起動していない)システムでシステムサービスを生成する「正しい方法」とは何ですか?

そこに多くの指示があります基本システムサービスファイルの生成しかし、彼らは(そうする必要があります)とsystemctl daemon-reloadダイヤルするように指示するようですsystemctl enable。マウントされたが起動していないドライブにサービスを追加する必要がある場合(システムオーケストレーションを考えてみてください)、ファイルシステム(ファイル、ディレクトリ、シンボリックリンク)に書き込むだけでこれをどのように実行できますか?

私は「あなたのXがどこに住んでいるかによって異なります」ということがあると確信して大丈夫です。移植性が制限されていない場合もあります。私は計画がうまくいくかどうかを確認したいだけです。

計画は次のとおりです。

  1. サービスファイルの書き込み/usr/lib/systemd/system/
  2. これへのシンボリックリンクは以下から来ています。/etc/systemd/system/multi-user.target.wants/

ベストアンサー1

デフォルトでは、提案された内容がどのようにsystemctl enable機能するかは、[Install]サービスファイルのセクションを見て、マークされた適切な.target.wantsディレクトリにシンボリックリンクを追加しますWantedBy=。 ~によるとマニュアルsystemd.unitページsystemctl、実行方法を複製するには、他のガイドラインも確認することをお勧めします。

  • Alias=デバイスと同じディレクトリにシンボリックリンクを作成します。
  • RequiredBy=.target.requires適切なディレクトリにシンボリックリンクを作成します。
  • Also=関連デバイスのインストール(各リンクがどのデバイスをインストールしているかを確認)
  • DefaultInstance=インスタンスユニットのデフォルト名( -> など)を使用してシンボリックリンクを追加します。multi-user.target.wants/[email protected][email protected]

ただし、まったく異なるアーキテクチャ用のファイルシステムをインストールしない限り、これらのファイルシステムを手動で作成する必要はありません。systemctlユニットファイルは現在実行中でなくても問題なくインストール/削除される可能性があるため、systemd(正しいディレクトリルートで実行している場合)の使用に問題はありません。もちろんデーモンがないので実行する必要はありません!私はGentooインストールの終わりにブートデバイス(友達など)を追加するためにこの方法を使用しましたが、問題なく動作しました。systemctl enabledisablechrootdaemon-reloadsystemd-networkd

おすすめ記事