2015-08-21 101 views
1

我試圖在node.js「腳本」部分運行兩個可執行文件。其中一個是node.js可執行文件(我們稱之爲proc1),另一個爲http-server,用於爲一些靜態資產提供服務。這些都是連續運行的過程。我想要一種方法來一起管理它們,以便它們一起開始,並且可以一起停止。我也希望能夠看到cosmos命令的輸出。在node.js腳本中運行兩個腳本

我試圖將其配置是這樣的:

"scripts": { 
    "build": "http-server >> /dev/null &; proc1", 
} 

但是這給了錯誤:

sh: -c: line 0: syntax error near unexpected token ;' sh: -c: line 0: http-server &; proc1'

我試圖找到一個簡單的node.js流程管理解決方案來運行旁邊這一點,但找不到合適的(類似於Python世界中的supervisor)。

任何想法該怎麼辦?

回答

0

創建另一個node.js腳本來啓動/停止這兩個服務器。

0

sh: -c: line 0: syntax error near unexpected token ;' sh: -c: line 0: http-server &; proc1'

錯誤發生在您的shell代碼中。將其更改爲

"http-server >> /dev/null & proc1", 

不能結束語句&,在後臺運行,並與;結束。

+0

這很好,但問題是當我按Ctrl-C來殺死'proc'時,http-server一直在後臺運行。有沒有辦法殺死它? – user1496984

+0

這是背景,因此它沒有收到輸入Ctrl-C時發送到前臺進程的SIGINT。你必須找到這個過程併發送一個信號。如果shell運行該進程但是如果它由其他內容(也許是nodejs?)衍生出來,那麼你的shell的作業控制可能會有所幫助,那麼它可能已經重新設置爲init,並且你必須在進程列表中找到它。 – dsh