Score:0

เป็นไปได้หรือไม่ที่บริการ systemd จะอัปเดตตัวเอง

ธง in

เฮ้ชาวเซิร์ฟเวอร์ที่ไร้ข้อผิดพลาด

ฉันต้องการเขียนบริการ systemd ที่สามารถอัปเดตตัวเองได้

โดยเฉพาะอย่างยิ่ง ทุก ๆ 5 นาที ควรตรวจสอบ Amazon S3 เพื่อหาเวอร์ชันใหม่ของไบนารีและ .บริการ ไฟล์. หากอัปเดตแล้ว ควรดาวน์โหลดและแทนที่ จากนั้นรีสตาร์ทเอง

ขออภัย ฉันเข้าใจว่า systemd ไม่อนุญาตให้แก้ไขไฟล์ที่ใช้งานอยู่

มีวิธีมาตรฐานในการบรรลุเป้าหมายนี้หรือไม่?

ขอบคุณ!

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

4snok avatar
es flag
ทำไมคุณไม่ต้องการใช้ systemd.times หรือ cron สำหรับงานนี้
Score:1
ธง us

การอัปเดตไฟล์ที่เกี่ยวข้องกับไฟล์ systemd .service หรือไฟล์เรียกทำงานของโปรแกรมจะเหมือนกับการอัปเดตไฟล์อื่นๆ

คุณควรทำสิ่งนี้ด้วยการจัดการการกำหนดค่าเช่น Ansible แต่เพื่อให้เสร็จตามที่เป็นเวิร์กโฟลว์ทั่วไปของคุณอาจใช้สคริปต์ bash/python ที่ทำสิ่งต่อไปนี้:

  1. รับไฟล์จากเว็บเซิร์ฟเวอร์/s3/etc
    • คุณสามารถตรวจสอบ md5sum อย่างรวดเร็วเพื่อเปรียบเทียบความแตกต่าง หรือเปรียบเทียบวันที่ ข้อมูลเมตาอื่นๆ เพื่อพิจารณาว่าไฟล์ใหม่หรือมีการเปลี่ยนแปลง
  2. แทนที่ไฟล์ตามต้องการ
    • คุณอาจจำเป็นต้อง หยุด บริการ (บริการ <servicename> หยุด) ล่วงหน้าหากไฟล์ถูกใช้งาน
  3. วิ่ง systemctl daemon-โหลดซ้ำ เพื่อบอก systemd ให้ "สแกนซ้ำ" ไฟล์บริการสำหรับการเปลี่ยนแปลงใดๆ
  4. รีสตาร์ท / เริ่มบริการที่เป็นปัญหา

จากนั้นคุณสามารถโหลดสคริปต์นั้นใน cron หรือเป็นตัวจับเวลา systemd เพื่อให้ทำงานตามกำหนดเวลา

in flag
ขอบคุณ และฉันคิดว่าคำตอบคือ "ไม่" ไม่ได้ บริการไม่สามารถอัปเดตตัวเอง คุณต้องใช้บริการที่สองเพื่ออัปเดตบริการแรก
Rino Bino avatar
us flag
ฉันคิดว่ามันเอนไปทาง "ใช่ - เป็นไปได้ในทางเทคนิค" มากกว่า ขึ้นอยู่กับกระบวนการที่กำลังทำงานเป็นบริการ หากคุณเรียกใช้กระบวนการสคริปต์ด้านบนเป็นบริการ systemd คุณสามารถทำได้ เช่นเดียวกับกลไกการอัพเดตตัวเองที่เขียนลงในกระบวนการเอง มันสามารถรีสตาร์ทตัวเองได้ด้วยซ้ำ ขึ้นอยู่กับกรณีการใช้งาน แต่ส่วนใหญ่เป็นไปได้เสมอขึ้นอยู่กับความคิดสร้างสรรค์ของคุณ

โพสต์คำตอบ

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