【问题标题】:Execute a PM2 Command With Node.js使用 Node.js 执行 PM2 命令
【发布时间】:2014-12-24 19:02:37
【问题描述】:

我想使用 NodeJS 执行 pm2 restart IDOFMYAPP... 可以吗?

类似的东西:

var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("pm2 restart IDOFMYAPP", puts);

实际上,我想创建一个按钮来执行上面的这段代码,但我的按钮位于我要重新启动的应用程序的视图中......

编辑#1

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1042:14)
    at listen (net.js:1064:10)
    at Server.listen (net.js:1138:5)
    at Function.app.listen (C:\xampp\htdocs\CMS\node_modules\microscope-web\node_modules\express\lib\application.js:546:24)
    at _.extend.run (C:\xampp\htdocs\CMS\node_modules\microscope-web\libs\Application.js:109:27)
    at Application.extend.initialize (C:\xampp\htdocs\CMS\Application.js:23:10)
    at Application (C:\xampp\htdocs\CMS\node_modules\microscope-web\libs\Application.js:31:19)
    at new child (C:\xampp\htdocs\CMS\node_modules\microscope-web\libs\utils.js:17:27)
    at C:\xampp\htdocs\CMS\bin\www:11:16

npm ERR! microscope_application@0.0.1 start: `node ./bin/www`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the microscope_application@0.0.1 start script.
npm ERR! This is most likely a problem with the microscope_application package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./bin/www
npm ERR! You can get their info via:
npm ERR!     npm owner ls microscope_application
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
npm ERR! cwd C:\xampp\htdocs\CMS
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm

编辑#2

var shell = require('shelljs');

shell.exec('pm2 restart IDOFMYAPP', function(code, output) {
  console.log('Exit code:', code);
  console.log('Program output:', output);
  res.redirect('/');
});

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    你可以这样做:

    var shell = require('shelljs');
    
    shell.exec('pm2 restart IDOFMYAPP', function(code, output) {
      console.log('Exit code:', code);
      console.log('Program output:', output);
    });
    

    【讨论】:

    • EADDRINUSE 表示您在同一端口上运行了另一个服务。
    • 好的,现在可以了,但是执行成功后如何重定向到'/'??
    • 你能详细说明一下吗?听起来创建另一个问题可能更合适。
    • 参见上面的edit#2...因为您的代码有效,但我的网页似乎不欣赏pm2 restart IDOFMYAPP...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2013-01-05
    • 2019-09-13
    • 1970-01-01
    • 2023-03-24
    • 2014-01-05
    相关资源
    最近更新 更多