Score:0

รีสตาร์ทบริการ Systemd สองบริการโดยจำลอง

ธง cn

ฉันมีบริการรันไทม์สองบริการที่ทำงานบนเครื่องลินุกซ์ของฉัน ฉันได้ตั้งค่าเพื่อให้ apt-get update และ apt-get upgrade อัปเดตบริการ ในกรณีที่ฉันได้อัปเดตเป็นอย่างใดอย่างหนึ่ง

ตอนนี้ปัญหาของฉันคือ A.service ทำการเรียก API ไปยัง B.service ระหว่างการเริ่มต้นเพื่อดึงข้อมูลระบบ (A.service ทำสิ่งต่างๆ B.service ดึงข้อมูลและเปิดเผยข้อมูลในรูปแบบของ API สำหรับ A.service)

หลังจากอัปเดต ฉันต้องรีสตาร์ททั้งสองบริการ โดยเรียกใช้ 'sudo systemctl restart A.service B.service' ขณะนี้ A.service ไม่สามารถเริ่มต้นได้เนื่องจาก B.Service ยังไม่ทำงาน

ไฟล์การกำหนดค่า A.service:

[หน่วย]
คำอธิบาย=A.service
After=B.service
ต้องการ = B.บริการ

[บริการ]
พิมพ์=แจ้ง
NotifyAccess=ทั้งหมด
ExecStart=/usr/bin/a_service

ไฟล์การกำหนดค่า B.service:

[หน่วย]
Description=B.บริการ
ก่อน=A.service

[บริการ]
พิมพ์=แจ้ง
NotifyAccess=ทั้งหมด
ExecStart=/usr/bin/b_service

ตามความเข้าใจของฉัน 'หลังจาก' และ 'ก่อน' ควรกำหนดลำดับการเริ่มต้น วิธีนี้ใช้ได้ดีเมื่อรีบูตเครื่อง แต่ฉันต้องทำให้มันใช้งานได้ด้วยการรีสตาร์ทด้วย เพราะการรีบูตเครื่องทุกครั้งหลังการอัปเดตไม่สามารถทำได้

ผลลัพธ์ที่ต้องการ:

$ sudo systemctl รีสตาร์ท A.service B.service

...
เริ่ม B.service
เริ่ม ก.บริการ
...

มีวิธีใดบ้างที่จะบรรลุเป้าหมายนี้? ขณะนี้เมื่อดำเนินการ 'systemctl รีสตาร์ท A.service B.service A จะเริ่มก่อน B และออกด้วยความล้มเหลว

vn flag
`sudo systemctl รีสตาร์ท B.service && sudo systemctl รีสตาร์ท A.service`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา