2017-02-17 97 views
0

我正在創建一些腳本來部署基於node.js的應用程序,通過持續集成,我無法看到停止節點進程的正確方法。停止nodejs進程由npm開始?

我開始通過start-dev.sh腳本的應用程序:

#!/bin/sh 

scripts_dir=`dirname $0` 
cd "${scripts_dir}/".. 

npm start & 
echo $! > app.pid 

然後,我希望通過阻止它:

#!/bin/sh 

scripts_dir=`dirname $0` 
cd "${scripts_dir}/".. 

echo killing pid `cat app.pid` 
kill -9 `cat app.pid` 

的問題,我發現是npm不再在運行這一點,所以pid對停止進程樹沒有用處。我現在能想到的唯一解決方法是完全跳過npm以啓動並直接撥打node直接?

任何人都可以提出一個合適的方式來處理這個問題嗎?在此背景下,是否推出了一種好的方法npm

+0

https://github.com/foreverjs/forever – Matt

回答

1

Forever可以爲你做流程管理的東西。

forever start app.js 
forever stop app.js 

儘量避免依賴npm start以外的發展,它只是增加了你和節點之間的附加層。