перезапустити програму кожні х хвилин?


10

У мене є програма, що читає Java, яка використовує бібліотеку з відкритими джерелами, і в цій бібліотеці є деякі помилки, які спричиняють глухий кут. Я повідомив про помилку, але знадобиться час, щоб її виправити, мені потрібно буде продовжувати використовувати цю програму, і поки вона перезапускається кожні 2-3 години, це зробить роботу для мене. Чи є спосіб змусити перезапуск програми кожні х хвилин?


3
Ви можете написати сценарій, який би вбив і перезапускав завдання кожні 2-3 години.
gt6989b

Для подальшої роботи з тим, що @ gt6989b, я б написав сценарій Python, який просто циклічно і чекає, поки пройде 2-3 години, а потім перезапустить програму. Ви можете знайти Python подпроцесс і ш модулів корисно.
Прорив

Відповіді:


12

Ви можете спробувати зробити це у вашому crontab:

crontab -e

тоді

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

crontabКоманда середнє:

  • кожні 3 години
  • вбити ім'я_придатника
  • запустити application_name у фоновому режимі

Ось як я зараз вирішую подібне питання. Я перезавантажую певне програмне забезпечення щовечора о 0:00 через cron, оскільки програмне забезпечення має тенденцію до пошкодження файлу стану через 4-5 днів. Я встановив програмне забезпечення як сервіс, а потім запускався service <appname> restart > /dev/null 2>&1в потрібний час.
Даніель Андерссон

2

Я пропоную вам налаштувати Supervisor для своєї задачі. Він може контролювати процес, перезапустити, якщо він не вдасться, також забезпечує перенаправлення виводу та інші приємні функції. Дивіться приклад програми для початку роботи.


+1, це здається більш "чистим" рішенням на відміну від crontab(хоча обидва рішення працюють просто чудово). Однак я вважаю, що Supervisor краще налаштовувати, які сигнали надсилати процес і коли (тобто коли надсилати SIGTERMі скільки часу чекати перед надсиланням SIGKILLтощо).
Прорив
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.