Перезагрузите мое приложение nodejs (с pm2) с php-сервера

У меня проблема, я использую webhook для github (написал на php).

Проблема, я хочу перезапустить приложение nodejs с pm2 из моего php-кода примерно так:

shell_exec("pm2 restart test");

но мой пользователь: www-data (nginx) не может его выполнить .. Когда я пытаюсь войти в систему как www-data, я получил следующее:

Ошибка: EACCES, в разрешении отказано '/.pm2' при ошибке (собственное) в Object.fs.mkdirSync (fs.js: 747: 18) в Object.CLI.pm2Init (/ usr / local / lib / node_modules / pm2 / lib /CLI.js:40:8) на объекте. (/ usr / local / lib / node_modules / pm2 / bin / pm2: 21: 5) в Module._compile (module.js: 460: 26) в Object.Module._extensions..js (module.js: 478: 10 ) в Module.load (module.js: 355: 32) в Function.Module._load (module.js: 310: 12) в Function.Module.runMain (module.js: 501: 10) при запуске (node.js : 129: 16)

И я не хочу использовать sudo, потому что он не совсем чистый, у вас есть идея? Заранее большое спасибо :)


person Emir Azaiez    schedule 18.10.2015    source источник
comment
По-прежнему существуют ситуации, когда вы хотите иметь возможность управлять библиотекой pm2 из PHP API. Я имею дело с той же ситуацией прямо сейчас, и --watch не вариант.   -  person WilliamX    schedule 02.04.2018


Ответы (2)


Установите правильную переменную среды HOME при запуске команды

$ HOME=/home/USER pm2 restart test
person Unitech    schedule 26.06.2021

Что ж, у меня есть решение, исправлено.

Мне просто нужно было запустить свое приложение с этой строкой:

pm2 start app.js --watch

Затем он следит за изменением файла и автоматически перезапускает его.

person Emir Azaiez    schedule 18.10.2015
comment
Ваш вопрос и ответ не совпадают - person Sivabalan; 02.08.2018