Мы столкнулись с редкой проблемой здесь, я надеюсь.У нас есть монитор для запуска фоновых заданий.В AWS Opsworks мы настроили рецепты шеф-повара для запуска в цикле развертывания.Эти рецепты будут обновляться каждый раз, когда происходит развертывание.Но возникает проблема, когда мы обновляем файл monitrc
динамически и запускаем команду monit reload
.
Проблема идет так (воспроизводимо):
Первоначально monitrc
В файле есть конфиги работы, скажем, J1, J2, J3, J4.
Теперь обновите файл monitrc
, используя только конфиги J1, J2, J3.
Теперь запустите monit reload
.Это просто перезагрузит конфигурацию и обновления только с заданиями J1, J2, J3.
Здесь возникает проблема.После этой перезагрузки monit reload
не очищает задание J4.Теперь мы запускаем развертывание.Новый код будет присутствовать во всех заданиях J1, J2, J3, потому что все рецепты выдают такие команды, как monit restart <J_ID>
.Но не в J4, потому что J4 больше не контролируется monit
.Оставив задание J4 в фоновом режиме со старым исходным кодом.
Так что, если кто-то сталкивался с этой проблемой раньше, пожалуйста, помогите мне с вашим решением.