khởi động lại chương trình sau mỗi x phút?


10

Tôi có một chương trình Java bị đột biến sử dụng thư viện mã nguồn mở và thư viện này có một số lỗi gây ra bế tắc Tôi đã báo cáo lỗi nhưng sẽ mất thời gian để sửa lỗi, tôi sẽ cần tiếp tục sử dụng chương trình này và miễn là nó tiếp tục khởi động lại cứ sau 2-3 giờ nó sẽ làm việc cho tôi. Có cách nào để làm cho chương trình khởi động lại sau mỗi x phút không?


3
Bạn có thể viết một kịch bản sẽ giết và khởi động lại nhiệm vụ cứ sau 2-3 giờ.
gt6989b

Để theo dõi những gì @ gt6989b, tôi sẽ viết một tập lệnh Python chỉ đơn giản là lặp và đợi cho đến khi 2-3 giờ trôi qua, sau đó khởi động lại chương trình. Bạn có thể thấy các mô đun con Python và các mô đun sh hữu ích.
Đột phá

Câu trả lời:


12

Bạn có thể thử làm trong crontab:

crontab -e

sau đó

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

Các crontablệnh có nghĩa là:

  • cứ sau 3 giờ
  • giết appli_name
  • bắt đầu appli_name trong nền

Đây là cách tôi hiện đang giải quyết một vấn đề tương tự. Tôi khởi động lại một phần mềm nào đó vào mỗi tối lúc 0:00 qua cron, vì phần mềm này có xu hướng làm hỏng tệp trạng thái của nó sau 4-5 ngày. Tôi đã cài đặt phần mềm dưới dạng dịch vụ và sau đó chạy service <appname> restart > /dev/null 2>&1vào thời gian mong muốn.
Daniel Andersson

2

Tôi đề nghị bạn cấu hình Giám sát cho nhiệm vụ của bạn. Nó có thể theo dõi quá trình, khởi động lại nếu thất bại, cũng cung cấp chuyển hướng đầu ra và các tính năng hay khác. Xem ví dụ cho chương trình để bắt đầu.


+1, đây có vẻ là một giải pháp "sạch" hơn so với crontab(mặc dù cả hai giải pháp đều hoạt động tốt). Tuy nhiên, tôi thấy Người giám sát tốt hơn trong việc định cấu hình tín hiệu nào để gửi quy trình và khi nào (tức là khi nào gửi SIGTERMvà thời gian chờ đợi trước khi gửi SIGKILL, v.v ...).
Đột phá
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.