从 php 服务器重新启动我的 nodejs 应用程序(使用 pm2)

Restart my nodejs app (with pm2) from php server

我刚遇到问题,我正在为 github 使用 webhook(我在 php 中写了一个)。

问题是,我想从我的 php 代码中使用 pm2 重启我的 nodejs 应用程序:

shell_exec("pm2 restart test");

但我的用户:www-data (nginx) 无法执行它。当我尝试以 www-data 身份登录时,我得到了这个:

Error: EACCES, permission denied '/.pm2' at Error (native) at Object.fs.mkdirSync (fs.js:747:18) at Object.CLI.pm2Init (/usr/local/lib/node_modules/pm2/lib/CLI.js:40:8) at Object. (/usr/local/lib/node_modules/pm2/bin/pm2:21:5) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16)

而且我不想使用 "sudo" 因为它不是很干净,你有什么想法吗?非常感谢您:)

嗯,我有一个解决方案,它已修复。

我只需要 运行 我的应用程序用这条线:

pm2 start app.js --watch

然后监视文件修改并自动重启。

在运行命令

时设置正确的HOME环境变量
$ HOME=/home/USER pm2 restart test