Запуск двух серверов node из одной команды оболочки с помощью оболочки script

Мне нужно запустить два сервера node в другом порту, я хочу написать простую оболочку script, которая запустит оба сервера.

Я написал его, как показано ниже:

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

но когда я запускаю команды за раз, он запускает первый сервер и не выполняет второй.

И только первый сервер прослушивает запрос, второй статический сервер не запускается. И в оболочке у меня есть выход из rest.js.

Что я раньше делал для запуска буксирных серверов, я запускаю две команды в другой оболочке.

Есть ли способ запустить оба сервера с помощью одной оболочки script?

Спасибо заранее.

Ответ 1

Ваша команда не работает, потому что вы пытаетесь запустить два процесса в одной оболочке. Вместо этого вы должны "запускать" процессы node в разные процессы. Попробуйте эту команду:

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

Ответ 2

Я написал очень простую оболочку script, для запуска MongoDB, запустите несколько серверов node в новом окне терминала и откройте Webstorm Ide.

он использует https://github.com/mklement0/ttab библиотеку для открытия новых окон терминала.

вы можете указать несколько проектов в коде и с простым, если иначе или, возможно, с оператором 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