【问题标题】:Restart my nodejs app (with pm2) from php server从 php 服务器重新启动我的 nodejs 应用程序(使用 pm2)
【发布时间】:2016-01-16 13:16:52
【问题描述】:

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

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

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”,因为它不是很干净,你有什么想法吗?非常感谢你:)

【问题讨论】:

  • 在某些情况下,您仍然希望能够从 PHP API 操作 pm2 库。我现在正在处理同样的情况, --watch 不是一个选项。

标签: php node.js nginx github pm2


【解决方案1】:

运行命令时设置正确的HOME环境变量

$ HOME=/home/USER pm2 restart test

【讨论】:

    【解决方案2】:

    嗯,我有一个解决方案,它已经解决了。

    我只需要使用这一行来运行我的应用程序:

    pm2 start app.js --watch
    

    然后它会监视文件何时被修改并自动重新启动它。

    【讨论】:

    • 你的问题和答案不匹配
    猜你喜欢
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 2020-10-15
    • 1970-01-01
    • 2018-03-15
    • 2011-03-08
    • 2015-05-18
    相关资源
    最近更新 更多