ฉันรู้ต่อไปด้ายและคาดคะเนคำตอบของมัน ยกเว้นคำตอบไม่ใช่คำตอบในความหมายทั่วไป มันบอกว่าปัญหาเกิดขึ้นในกรณีใดกรณีหนึ่ง แต่ไม่ใช่โดยทั่วไป
คำถามของฉันคือ: มีวิธีการแก้ปัญหาการสั่งวงจรในลักษณะทั่วไป ? เช่นมีคำสั่งที่จะอธิบายวงจรและสิ่งที่เชื่อมโยงหน่วยหนึ่งไปยังอีก?
ตัวอย่างเช่นฉันมีการติดตามใน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 ยกเว้นว่าไม่อย่างน้อยก็ไม่ชัด มีคำสั่งที่จะแสดงให้เห็นว่าลิงค์นี้มาจากไหน? และโดยทั่วไปแล้วจะมีคำสั่งซึ่งจะหารอบและแสดงที่แต่ละลิงค์ในรอบเกิด?