У меня есть сервер nodejs, который выполняет команды через child_process.exec. Одна такая команда перезапускает экземпляр узла (и пару других вещей).
Сценарий делает что-то вроде этого:
- уничтожить узел
- узел уничтожения программ использует
- очистить логи
- узел перезапуска программ использует
- перезапустить узел
Я знаю, что это не лучший способ сделать это, но мои руки связаны (это выпущенная версия программного обеспечения, и мы не можем реструктурировать до следующего выпуска).
Что происходит, когда я запускаю команду, она убивает узел, а затем остальная часть сценария умирает.
Оболочкой по умолчанию, которую использует этот узел, является sh, и ее нельзя изменить.
Какие у меня варианты?
Сервер работает как root, поэтому проблем с разрешениями не будет. Я полагаю, что мне придется как-то запустить новую оболочку, но я не совсем уверен, как это сделать. Я хотел бы успешно выйти из текущей оболочки, но это не является обязательным требованием, если я могу получить весь сценарий отдельно от текущей оболочки.