我知道下面的线程,并且应该是它的答案。除了答案,不是一般意义上的答案。它说明了在一种特定情况下但不是一般情况下的问题。
我的问题是:有没有一种通用的调试订购周期的方法?例如:是否有一个描述循环的命令以及将一个单元链接到另一个单元的命令?
例如,我有以下内容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,除了它不是,至少不是很明显。是否有一个命令可以演示此链接的来源?通常,是否有一条命令可以找到周期并显示周期中每个链接的起源?