そこに多くの指示があります基本システムサービスファイルの生成しかし、彼らは(そうする必要があります)とsystemctl daemon-reload
ダイヤルするように指示するようですsystemctl enable
。マウントされたが起動していないドライブにサービスを追加する必要がある場合(システムオーケストレーションを考えてみてください)、ファイルシステム(ファイル、ディレクトリ、シンボリックリンク)に書き込むだけでこれをどのように実行できますか?
私は「あなたのXがどこに住んでいるかによって異なります」ということがあると確信して大丈夫です。移植性が制限されていない場合もあります。私は計画がうまくいくかどうかを確認したいだけです。
計画は次のとおりです。
- サービスファイルの書き込み
/usr/lib/systemd/system/
- これへのシンボリックリンクは以下から来ています。
/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 enable
disable
chroot
daemon-reload
systemd-networkd
答え2
systemctl enable
ロゴと共に使用されます--root
。このフラグは、デバイスがファイルを検索するルートディレクトリを設定するだけでなく、systemctl
システムデーモンと通信せずにファイルシステムが直接動作するように指示します。