2016-09-23 26 views
-2

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

这里的代码

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

你是如何重新启动应用程序? –

+1

在服务器上设置的应用程序如何?你如何重新启动它们?没有细节,我们不知道问题可能是什么。 –

+0

我添加了上面的代码 – Jasmine

回答

1

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

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

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

+0

我试过,但如果我重新启动一台服务器,它停止第二个 – Jasmine

+0

@Jasmine - 你不能停止应用程序中的一台服务器。您只能停止该应用程序。您需要将应用程序分成两个独立的应用程序。只有这样你才能控制一个而不会影响另一个。 –

相关问题