รีสตาร์ทโปรแกรมทุก ๆ x นาที?


10

ฉันมีโปรแกรม Java แบบหลายเธรดซึ่งใช้ไลบรารี opensource และไลบรารีนี้มีข้อบกพร่องบางอย่างซึ่งทำให้เกิดการหยุดชะงักฉันได้รายงานข้อผิดพลาดแล้ว แต่จะใช้เวลานานกว่าที่จะได้รับการแก้ไขฉันจะต้องใช้โปรแกรมนี้ต่อไป เริ่มใหม่ทุก 2-3 ชั่วโมงมันจะทำงานให้ฉัน มีวิธีใดบ้างที่จะทำให้โปรแกรมรีสตาร์ททุก ๆ x นาที?


3
คุณสามารถเขียนสคริปต์ที่จะฆ่าและรีสตาร์ทงานทุก 2-3 ชั่วโมง
gt6989b

เพื่อติดตามสิ่งที่ @ gt6989b ฉันจะเขียนสคริปต์ Python ที่วนซ้ำและรอจนกระทั่งผ่านไป 2-3 ชั่วโมงจากนั้นเริ่มโปรแกรมใหม่ คุณอาจพบว่ากระบวนการย่อยของ Python และโมดูลshมีประโยชน์
Breakthrough

คำตอบ:


12

คุณสามารถลองทำในcrontab:

crontab -e

แล้วก็

 11 */3 * * * /usr/bin/pkill -f appli_name; /path/to/appli_name & &>/dev/null

crontabหมายถึงคำสั่ง:

  • ทุก 3 ชั่วโมง
  • ฆ่า appli_name
  • เริ่ม appli_name ในพื้นหลัง

นี่คือวิธีที่ฉันแก้ไขปัญหาที่คล้ายกันในปัจจุบัน ฉันรีสตาร์ทซอฟต์แวร์บางรายการทุกคืนเวลา 00:00 นผ่าน cron เนื่องจากซอฟต์แวร์มีแนวโน้มที่จะทำให้แฟ้มสถานะเสียหายหลังจาก 4-5 วัน ฉันติดตั้งซอฟต์แวร์เป็นบริการแล้วเรียกใช้service <appname> restart > /dev/null 2>&1ตามเวลาที่ต้องการ
Daniel Andersson

2

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


+1 ดูเหมือนว่าจะเป็นโซลูชันที่ "สะอาด" มากกว่าcrontab(แม้ว่าทั้งสองโซลูชันจะทำงานได้ดีก็ตาม) อย่างไรก็ตามฉันพบว่าหัวหน้างานนั้นดีกว่าในการกำหนดค่าสัญญาณที่จะส่งกระบวนการและเมื่อ (เช่นเวลาที่จะส่งSIGTERMและระยะเวลารอก่อนที่จะส่งSIGKILLฯลฯ )
พัฒนา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.