2013-02-04 17 views
1

我使用的是崇高的文本2的構建系統來幫助開發我的mongodb + node.js服務器,這非常方便,因爲它使我能夠測試我的代碼,而不必繼續返回到終端。缺點是很容易不留意在後臺運行多個節點進程,這有時會在其中一個使用我需要的端口來測試另一個模塊時導致衝突。停止目錄之外的所有節點進程我剛開始

是否有某種方式可以阻止在給定目錄中運行的所有節點進程,只要我從該目錄啓動新進程?一個bash腳本或類似的?

+0

是否要停止該目錄中的所有節點進程,還是要停止某個端口範圍內的全部或兩者? [這個問題](http://stackoverflow.com/questions/13129464/how-to-find-out-which-node-js-pid-is-running-on-which-port/)可能是有用的開始。 –

+0

引起問題的是那些正在監聽端口的端口(我做了一個'lsof -i:portnum -t'後跟''kill'停止),但我想解決孤立節點進程的基本問題一般來說 – wheresrhys

回答

0

嘗試這樣:

ps auxwwwe | egrep " [n]ode .+ PWD=$PWD" | awk '{ print $2 }' | xargs kill 

這將執行以下操作:

  1. 用途ps得到完整路徑的過程。
  2. 在當前工作目錄中搜索以node命令開始的所有進程(可以使用絕對路徑,其他環境變量等對其進行修改)。
  3. 查找第二列:pid(根據您的系統使用awknawk)。
  4. 在每個PID上運行kill
相關問題