私は次のスレッドとおそらくそれに対する答えを知っています。回答を除き、一般的な意味での回答ではありません。1つの特定のケースで問題が何であったかがわかりますが、一般的にはわかりません。
私の質問は、一般的な方法で注文サイクルをデバッグする方法はありますか?たとえば、サイクルと、あるユニットを別のユニットにリンクするものを記述するコマンドがありますか?
たとえば、私は以下を持っていますjournalctl -b
(日付を無視してください、私のシステムには時間を同期するRTCがありません):
Jan 01 00:00:07 host0 systemd[1]: Found ordering cycle on sysinit.target/start
Jan 01 00:00:07 host0 systemd[1]: Found dependency on local-fs.target/start
Jan 01 00:00:07 host0 systemd[1]: Found dependency on cvol.service/start
Jan 01 00:00:07 host0 systemd[1]: Found dependency on basic.target/start
Jan 01 00:00:07 host0 systemd[1]: Found dependency on sockets.target/start
Jan 01 00:00:07 host0 systemd[1]: Found dependency on dbus.socket/start
Jan 01 00:00:07 host0 systemd[1]: Found dependency on sysinit.target/start
Jan 01 00:00:07 host0 systemd[1]: Breaking ordering cycle by deleting job local-fs.target/start
Jan 01 00:00:07 host0 systemd[1]: Job local-fs.target/start deleted to break ordering cycle starting with sysinit.target/start
cvol.service(導入され、サイクルを中断するもの)は次のとおりです。
[Unit]
Description=Mount Crypto Volume
After=boot.mount
Before=local-fs.target
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/bin/cryptsetup open /dev/*** cvol --key-file /boot/***
[Install]
WantedBy=home.mount
WantedBy=root.mount
WantedBy=usr-local.mount
journalctlによると、cvol.serviceはbasic.serviceを必要としますが、少なくとも明らかにそうではないということを除きます。このリンクがどこから派生したかを示すコマンドはありますか?そして一般的に、サイクルを見つけて、サイクル内の各リンクがどこから始まるかを示すコマンドがありますか?