Порождает сложный процесс (sipp) внутри приложения докеризованного узла
Я запускаю приложение докеризованного узла. У него есть несколько дочерних процессов, и они работают нормально, один процесс неожиданно возвращает "1"! вот строка из моего server.js:
var child = child_process.spawnSync("./sipp", ["-sf","./call_helloworld.xml", "127.0.0.1:5070","-p","1236","-m","1","-trace_screen"], {cwd:"/root/UT"});
logger.info(child.status);
когда я захожу в контейнер и запускаю ту же самую строку из bash из текущего рабочего каталога, как показано ниже, он работает нормально (возвращает 0)
node
>require('child_process').spawnSync("./sipp", ["-sf","./call_helloworld.xml", "127.0.0.1:5070","-p","1236","-m","1","-trace_screen"], {cwd:"/root/UT"});
Я почти уверен, что вызов sipp даже не начинается с первой команды.
мои последние строки файла Docker
WORKDIR /root/config #this is the location of my server app
ENTRYPOINT ["node", "server.js"]
Я знаю, что проблема немного специфична, но любая общая помощь в отладке spawnSync приветствуется.
Решено: после дальнейшей отладки я обнаружил, что spawnSync возвращается
"Ошибка открытия терминала: неизвестно."
и было решено добавить переменную среды "export TERM = xterm". https://nology.de/docker-error-opening-terminal-unknown.html