2013-06-13 42 views
10

Tôi phải chạy hai máy chủ nút trong cổng khác nhau, tôi muốn viết một kịch bản lệnh shell đơn giản sẽ khởi động cả hai máy chủ.Chạy hai máy chủ nút từ một lệnh shell bằng cách sử dụng một kịch bản lệnh shell

Tôi đã viết nó như dưới đây:

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

nhưng khi tôi chạy các lệnh tại một thời điểm, nó bắt đầu các máy chủ đầu tiên và không thực hiện một giây.

Và chỉ máy chủ nắm tay mới lắng nghe yêu cầu, máy chủ tĩnh thứ hai không khởi động. Và trong trình bao, tôi có một kết quả từ rest.js.

Điều mà trước đây tôi đã làm để chạy các máy chủ kéo, tôi chạy hai lệnh trong trình bao khác nhau.

Có cách nào tôi có thể chạy cả hai máy chủ với một tập lệnh shell đơn?

Xin cảm ơn trước.

+2

Cũng .. "Forever" có thể quan tâm đến bạn .. https://github.com/nodejitsu/forever –

Trả lời

17

Lệnh của bạn không hoạt động vì bạn đang cố gắng có hai tiến trình đang chạy trong cùng một trình bao. Thay vào đó, bạn nên 'đẻ trứng' quy trình nút thành các quy trình khác nhau. Hãy thử lệnh này:

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

tôi đặt tất cả ba máy chủ trong 'app.js' tập tin và chạy với' nút app.js> app.js.log'. Và nó hoạt động tốt. Làm thế nào tôi có thể tiếp tục đăng nhập cho từng máy chủ riêng biệt? – m2j

+0

@ m2j Vì vậy, bạn có 3 máy chủ đang được bắt đầu trong cùng một quá trình? Bạn không thể giữ riêng nhật ký bằng lệnh. Bạn sẽ phải chỉ định tệp nhật ký cho từng máy chủ bên trong 'app.js' – verybadalloc

+0

cảm ơn bạn đã trả lời @verybadalloc – m2j

0

tôi đã viết kịch bản vỏ rất đơn giản, để bắt đầu MongoDB, bắt đầu nhiều máy chủ nút trong một cửa sổ terminal mới và mở Webstorm Ide.

nó sử dụng thư viện https://github.com/mklement0/ttab để mở cửa sổ thiết bị đầu cuối mới.

bạn có thể chỉ định nhiều dự án bằng mã và đơn giản nếu có khác hoặc có thể với tuyên bố chuyển đổi, phân biệt dự án.

sh dev.sh waufwauf 

sẽ cd và bắt đầu dự án waufwauf, hy vọng điều đó sẽ hữu ích.

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