Каков наилучший способ программного обновления кода сервера NodeJS через сам сервер, используя что-то вроде PM2?
Я сгенерировал исполняемый файл для моего сервера NodeJS с помощью pkg, который развернут на устройстве Raspberry Pi и запускается с использованием PM2 с параметрами --watch. Через вызов API на этом самом сервере я получаю новый исполняемый файл и просто заменяю старый, используя что-то вроде
child_process.exec("mv //newExecutable //oldExecutable")
Опция --watch с PM2 ловит изменения в исполняемом файле и перезагружает мой сервер. Это прекрасно работает, но не похоже на надежный способ обновления сервера NodeJS. Я хотел бы запустить некоторые сценарии очистки после обновления, но я не могу этого сделать, потому что мой предыдущий процесс завершается сразу после изменения исполняемого файла. Я также хотел бы отказаться от обновления кода, если новый исполняемый файл имеет проблемы с запуском. Кто-нибудь может предложить лучший способ добиться этого? Один из способов, который я могу придумать, - запустить другой сервер на другом порту и программно получить доступ к PM2 с помощью API.