Запуск очень длинных скриптов - как сохранить их работоспособность и запустить их снова, если они потерпят неудачу?
Мне нужно запустить несколько длительных процессов на сервере CENTOS.
Если я оставляю процессы (скрипты python/php) для запуска, иногда процессы останавливаются из-за тривиальных ошибок, например. Проблемы с кодировкой строк или иногда потому, что процесс, кажется, убит сервером.
Я пытаюсь использовать nohup и запускать задания из crontab
Есть ли способ сохранить эти процессы такими, что все переменные будут сохранены, и я смогу перезапустить скрипт с того места, где он остановился?
Я знаю, что могу запрограммировать это в код, но предпочел бы обобщенную утилиту, которая могла бы просто поддерживать эти вещи, чтобы скрипт завершался, даже если были тривиальные ошибки.
Возможно, мне нужен какой-то инструмент управления процессами?
Большое спасибо за любые предложения
1 ответ
Есть ли способ сохранить эти процессы так, чтобы все переменные были сохранены, и я могу перезапустить сценарий с того места, где он остановился?
Да. Это называется созданием "контрольной точки" или "сувенира".
я знаю, что могу запрограммировать это
Хорошо. Начать. Каждая проблема уникальна, поэтому вы должны создавать, сохранять и перезагружать сувениры.
но предпочел бы обобщенную утилиту, которая могла бы просто поддерживать эти вещи, чтобы скрипт завершался, даже если были тривиальные ошибки.
Это не обобщает хорошо. Не все переменные могут быть сохранены. Только вы знаете, что требуется для значительного перезапуска вашего процесса.
возможно мне нужен какой-то инструмент управления процессами?
На самом деле, нет.
тривиальные ошибки, например. проблемы кодирования строк
Обычно мы находим их путем модульного тестирования. Это экономит много программирования, чтобы обойти ошибку. Унция профилактики стоит фунта глупых обходных путей.
иногда, потому что процесс, кажется, убит сервером.
Какие? Тебе лучше узнать почему. Унция профилактики стоит фунта глупых обходных путей.