重新启动一个应用程序时,停止另一个应用程序node.js

时间:2016-09-23 16:30:03

标签: node.js

我在同一台服务器上运行了两个node.js应用。当我重新启动一个监听端口7777的应用程序时,即使它们在两个不同的端口上运行,它也会停止在端口8044上运行的另一个应用程序。我该如何解决这个问题?

这是代码

AUT / app.js:

var http = require('http');
var express = require('express'),
    testsConfig = require('./config/testsConfig');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

app.get('/', function (req, res, next) {
    console.log('ROOT');
    res.sendStatus(200);
});

app.post('/aut', function (req, res, next) {
    if (req.body && req.body.secret && req.body.secret == "danzellovestodance") {
        res.send(testsConfig);
    } else {
        res.sendStatus(500);
    }
});


module.exports = app;

app.js

var express = require('express');
var http = require('http');
var webhook = require('./git-webhook/app');
var aut = require('./aut/app');
http.createServer(webhook).listen(7777);
http.createServer(aut).listen(8044);

我曾经将每个服务器分成不同的app.js文件,但是当我启动一台服务器时,它停止了另一台服务器

if [ "$1" = "start" ]; then
  forever start -l /opt/aut.log -a /opt/aut/app.js
  echo "Started"
elif [ "$1" = "stop" ]; then
  forever stopall
  echo "Stopped"
elif [ "$1" = "restart" ]; then
  forever stopall
  forever start -l /opt/aut.log -a /opt/aut/app.js
  echo "Restarted"
elif [[ "$1" = "logs" || "$1" = "log" ]]; then
  tail -f /opt/aut.log
else
  echo 'Invalid command. You can only use "start", "stop", "restart", or "logs"'
fi

1 个答案:

答案 0 :(得分:1)

问题是您只有一个启动两台服务器的Node应用程序。

当您重新启动应用程序时,它会关闭它正在运行的所有服务器。

如果您希望它们能够独立控制,您实际上必须为第二台服务器创建第二个Node应用程序。