ฉันได้เขียนไฟล์บริการผู้ใช้ systemd สองไฟล์ซึ่งฉันต้องการให้ผู้ใช้เปิดใช้งานและต้องการการเชื่อมต่อเครือข่ายที่ใช้งานได้ ฉันคิดว่าจะง่ายเหมือน:
Wants=network-online.target
After=network-online.target
อย่างไรก็ตามบริการดูเหมือนจะเริ่มเร็วเกินไปและในjournalctl
ฉันเห็น:
network-online.target: Cannot add dependency job, ignoring: Unit network-online.target failed to load: No such file or directory.
จากนั้นฉันค้นหาเพิ่มเติมและลอง
Wants=network.target
After=network.target
sudo systemctl enable systemd-networkd-wait-online.service
และทำ
ตอนนี้ฉันมีในjournalctl
:
network.target: Cannot add dependency job, ignoring: Unit network.target failed to load: No such file or directory.
และอีกครั้งบริการเริ่มเร็วเกินไป
ข้อความนั้นควรจะอยู่ที่นั่นหรือไม่? ฉันจะแก้ไขปัญหาของฉันได้อย่างไร
แก้ไข : เหตุผลง่ายและระบุไว้เฉพาะในArch Wiki :
systemd --user
ทำงานเป็นกระบวนการแยกจากsystemd --system
กระบวนการ หน่วยผู้ใช้ไม่สามารถอ้างอิงหรือขึ้นอยู่กับหน่วยระบบ
โพสต์ฟอรัมนี้ดูเหมือนจะแนะนำวิธีแก้ปัญหาง่ายๆ: ฉันควรจะlink
มีหน่วยระบบที่จำเป็นในฐานะผู้ใช้ดังนั้นจึงสร้าง symlink ที่มีอยู่ในพา ธ การค้นหาหน่วย
หลังจากทำเช่นนั้นฉันไม่เห็นNo such file or directory
ข้อความใด ๆแต่ฉันยังคงไม่สามารถให้บริการได้จริง ๆ หลังจากเครือข่ายออนไลน์ ฉันได้พยายามเชื่อมโยงnetwork.target
, network-online.target
และsystemd-networkd-wait-online.service
การตั้งค่าหน่วยของฉันไปขึ้นอยู่กับแต่ละของพวกเขาไม่ประสบความสำเร็จ เมื่อฉันตรวจสอบสถานะของหน่วยที่เชื่อมโยงในโหมดผู้ใช้ พวกเขาทั้งหมดจะมีบางอย่างที่ไม่ทำงานเช่น:
$ systemctl --user status network.target
● network.target - Network
Loaded: loaded (/usr/lib/systemd/system/network.target; linked; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
$ systemctl status network.target
● network.target - Network
Loaded: loaded (/usr/lib/systemd/system/network.target; static; vendor preset: disabled)
Active: active since Sat 2015-07-18 19:20:11 MSK; 3h 35min ago
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Jul 18 19:20:11 calc-server systemd[1]: Reached target Network.
Jul 18 19:20:11 calc-server systemd[1]: Starting Network.
อย่างไรก็ตามฉันสามารถเห็นการnetwork-online.target
ใช้งานในโหมดผู้ใช้หลังจากเชื่อมโยง:
$ systemctl --user status network-online.target
● network-online.target - Network is Online
Loaded: loaded (/usr/lib/systemd/system/network-online.target; linked; vendor preset: enabled)
Active: active since Sun 2015-07-19 00:35:38 MSK; 2min 48s ago
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Jul 19 00:35:38 calc-server systemd[469]: Reached target Network is Online.
Jul 19 00:35:38 calc-server systemd[469]: Starting Network is Online.