как запустить pm2 в процессе spawn удаленно с другого сервера, а не проблема сценария оболочки - PullRequest
0 голосов
/ 02 июня 2019

это не проблема, связанная со сценарием оболочки, это проблема того, как перезапустить или использовать команды pm2 из процесса spawn в nodejs с удаленного сервера. Выполнение команд pm2 в одиночку или в сценарии оболочки непосредственно на сервере работает нормально, но когда я использую spawn, я получаю сообщение об ошибке ниже.

как перезапустить pm2, используя процесс порождения, используя ssh root@ip

я пробовал это

ssh root@ip 'pm2 restart all'

но когда я пытаюсь сделать это на своем локальном ПК прямо из моего терминала это работает, но когда я пытаюсь запустить его в процессах exces или spawn, я получаю эту ошибку bash: pm2: command not found failed with code 127

я тоже пробовал, помещая свои команды в script.sh и отправить его с этой командой из spawn

scp /root/script.sh root@${ip}:/root&&ssh root@${ip} bash script.sh

Я получаю ту же ошибку. но если я запускаю один в терминале, это работает, это ошибка в переменной окружения, он не загружается правильно, когда я запускаю его в spawn prcess.

1 Ответ

1 голос
/ 02 июня 2019
ssh -t root@ip "export PATH='path/to/pm2'; pm2 restart all"

Вы должны включить путь к pm2, даже если это текущий каталог (например, .pm / или / path / to / pm2), чтобы убедиться, что он найден, или экспортировать PATH = .... перед вызовом pm2. .

...