18

我必须在不同的端口上运行两个节点服务器,我想编写一个简单的 shell 脚本来启动两个服务器。

我这样写:

node project/rest.js && node static-server.js

但是当我一次运行命令时,它会启动第一个服务器并且不执行第二个服务器。

并且只有第一个服务器监听请求,第二个静态服务器不启动。在 shell 中,我确实有来自 rest.js 的输出。

我之前为运行两台服务器所做的,我在不同的 shell 中运行了两个命令。

有没有办法可以用一个 shell 脚本运行两个服务器?

提前致谢。

4

3 回答 3

31

您的命令不起作用,因为您试图让两个进程在同一个 shell 中运行。相反,您应该将节点进程“派生”到不同的进程中。试试这个命令:

node project/rest.js & node static-server.js &
于 2013-06-13T11:37:08.037 回答
0

我编写了非常简单的 shell 脚本,用于启动 MongoDB,在新的终端窗口中启动多个节点服务器并打开 Webstorm Ide。

它使用https://github.com/mklement0/ttab库来打开新的终端窗口。

您可以在代码中指定多个项目,并使用简单的 if else 或 switch 语句来区分项目。

sh dev.sh waufwauf   

将 cd 并启动 waufwauf 项目,希望对您有所帮助。

#!/bin/bash

if [ "$1" = "waufwauf" ]
then
  cd Code/waufwauf;
    ttab -d ./ mongod;
    ttab -d server npm run dev;
    ttab -d client npm run dev;
    wstorm ~/Code/waufwauf;
elif [ "$1" = "" ]
then
    echo specify project name;  
else
    echo $1 unknown project;
fi
于 2016-09-26T06:07:37.207 回答
-1

试试这个,这会工作,

启动节点项目/rest.js && 启动节点 static-server.js

于 2018-06-01T07:28:48.777 回答