Score:0

วิธีจัดการ systemd.service ที่เป็นเธรด แต่เป็นอิสระ

ธง in

ฉันมีแอปพลิเคชันจาวาที่มี 4 กระบวนการทำงาน (บน Ubuntu 20.04LTS) อ้างอิงรูปภาพด้านล่าง บริการ 1 เริ่มก่อน 2+ บริการ 2 จะเริ่มบริการ 3 และ 4 ด้วย ฉันได้ตั้งค่า 1 และ 2 อย่างง่ายและใช้งานได้

การพึ่งพาบริการ บริการ 2 เริ่มต้นบริการ 3 และ 4

อย่างไรก็ตาม บริการ 3 และ 4 สามารถหยุด/เริ่มต้นใหม่โดยไม่ขึ้นกับบริการ 2 มีวิธีที่จะนำสิ่งนี้ไปใช้ในข้อกำหนดบริการ app-service4.service หรือไม่ ฉันได้ดูที่ โพสต์บล็อกที่อธิบายกรณีที่คล้ายกันดังนั้นฉันคิดว่าการกำหนดบริการ 3 และ 4 ด้วยบริการ "PartOf" 2 อาจเป็นวิธีหนึ่ง แต่จะทำให้บริการ 3 และ 4 เข้าใจว่าบริการ 2 เริ่มต้นแล้วได้อย่างไร

ด้านล่างนี้คือ service2.service

[หน่วย]
คำอธิบาย=บริการ 2

After=service1.service

[บริการ]   
ExecStart=/usr/local/bin/service2.sh เริ่มต้น
ExecStop=/usr/local/bin/service2.sh หยุด

[ติดตั้ง]
ต้องการโดย=default.target

หลังจากเริ่มต้นสถานะของบริการจะแสดง CGroup เช่นด้านล่าง (pid และชื่ออื่น ๆ แบบง่าย)

/system.slice/service2.service
 |- 123 /bin/sh /usr/local/bin/service2.sh เริ่มต้น
 |- 124 บริการจาวา2
 |- 125 จาวาเซอร์วิส3
 |- 126 บริการจาวา4

แล้วฉันจะเพิ่ม service3.service ซึ่งจะอนุญาตให้ฉันหยุดทำงาน/รีสตาร์ท service3 โดยไม่ยกเลิก service2 ได้อย่างไร ด้านล่างนี้คือความพยายามของฉันซึ่งไม่สามารถเข้าใจได้ว่า service2 กำลังทำงานอยู่

[หน่วย]
Description=บริการ3
PartOf=service2.service
    
[บริการ]   
ExecStart=/usr/local/bin/service3.sh เริ่มต้น
ExecStop=/usr/local/bin/service3.sh หยุด

[ติดตั้ง]
ต้องการโดย=default.target

ด้วยการตั้งค่านี้หลังจากเริ่ม service2 "สถานะ systemctl service2" แสดงกระบวนการ service2-servic4 ตามที่กล่าวไว้ข้างต้น และ "สถานะ systemctl service 3" แสดงเป็น "ไม่ได้ใช้งาน (ตาย)" ความพยายามในการเริ่มบริการ 3 (systemctl start service3) สิ้นสุดลงด้วยการหยุดแบบเดียวกัน (ขณะที่มันทำงานอยู่แล้ว คำสั่ง start จะสิ้นสุดลงซึ่งคำสั่ง stop จะถูกดำเนินการ) หากฉันพยายามเริ่มต้นใหม่อีกครั้ง มันจะเริ่มต้นเป็นบริการแยกต่างหาก .

ฉันต้องการให้ daemon เข้าใจว่ากระบวนการภายใต้ service-2 เป็น service-3 จริง ๆ ดังนั้น service-3 จึงจะปรากฏเป็นกำลังทำงานอยู่ เป็นไปได้ไหม หากไม่มี - มีวิธีแก้ไขใดบ้างเพื่อให้สามารถจัดการบริการแยกกันได้

โพสต์คำตอบ

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