2013-06-13 11 views
10

Ich habe zwei Knoten-Server in verschiedenen Port ausführen, möchte ich ein einfaches Shell-Skript schreiben, die beide Server starten wird.Ausführen von zwei Knoten-Server von einem einzigen Shell-Befehl mit einem Shell-Skript

Ich schrieb es wie unten:

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

aber wenn ich die Befehle zu einem Zeitpunkt ausgeführt, startet er den ersten Server und nicht den zweiten auszuführen.

Und nur der erste Server wartet auf Anfrage, zweiter statischer Server startet nicht. Und in der Shell habe ich eine Ausgabe von rest.js.

Was ich zuvor getan habe, um tow server auszuführen, führe ich zwei Befehle in verschiedenen Shell.

Gibt es eine Möglichkeit, ich kann beide Server mit einem einzigen Shell-Skript ausführen?

Vielen Dank im Voraus.

+2

.. Auch "Forever" könnte für Sie interessant sein .. https://github.com/nodejitsu/forever –

Antwort

17

Ihr Befehl funktioniert nicht, weil Sie versuchen, zwei Prozesse in derselben Shell auszuführen. Stattdessen sollten Sie die Knotenprozesse in verschiedene Prozesse "spawnen". Versuchen Sie diesen Befehl ein:

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

i setzen alle drei Server in 'app.js' Datei und starten Sie mit' Knoten app.js> app.js.log'. Und es funktioniert gut. Wie kann ich für jeden Server getrennt protokollieren? – m2j

+0

@ m2j Sie haben also 3 Server im gleichen Prozess gestartet? Sie können Protokolle nicht separat mit einem Befehl speichern. Sie müssten die Protokolldatei für jeden Server in Ihrem 'app.js' angeben. – verybadalloc

+0

danke für die Antwort @verybadalloc – m2j

0

i Skript sehr einfache Shell geschrieben haben, für MongoDB starten, mehrere Knotenserver in einem neuen Terminal-Fenster starten und WebStorm Ide öffnen.

es verwendet https://github.com/mklement0/ttab Bibliothek, um neue Terminalfenster zu öffnen.

Sie können mehrere Projekte in Code und mit einfachen wenn sonst oder vielleicht mit switch-Anweisung, Projekte zu unterscheiden.

sh dev.sh waufwauf 

werde cd und waufwauf projekt starten, hoffe es hilft.

#!/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 
Verwandte Themen