アップロードを使って、nodejsアプリケーションをシステムサービスの実例としてカプセル化します.

2932 ワード

一、nodejs応用普通配置方式紹介
やっとnodejsのアプリケーションをオンラインで展開します.ソースコードをgitで目次の下にコピーします.

   /root/deploy/movie 
 
そしてコマンドを実行します
 
  
~ cd /root/deploy/movie
node ./app.js
上記のように、nodejsプログラムは現在のconsoneインターフェースで実行されます.コンサートが終わると、アプリケーションも停止されます.コマンドを変更して、プログラムをバックグラウンドで実行します.
 
  
~ node ./app.js &
[1] 21333
[2013-06-21 09:38:30.696] [INFO] console - Start App: http://jb51.net
[2013-06-21 09:38:30.700] [INFO] console - Express server listening on port 3000
このようにプログラムは楽屋で起動します.プロセスは正常に進行しています.私も多くのことをしなくてもいいです.
もしこのプログラムを停止したいなら、どうすればいいですか?nodejsのシステムプロセスを見つけて、また殺します.
 
  
~ ps -aux|grep node
root     21333  0.6  3.7 909200 38292 pts/0    Sl   09:38   0:00 node app.js
~ kill -9 21333 
直接暴力で解決する.システムサービスのように、nodejsアプリケーションを起動してクローズすることができれば、いいですね.以下はアップロードを通じて、nodejsアプリケーションをシステムサービスにパッケージ化します.
二、アプリをアップロードタスクスクリプトにパッケージする
 
  
~ vi /etc/init/nodejs-moive.conf

description "node.js jb51.net"

start on startup
stop on shutdown

script
    export HOME="/root/deploy/movie"
    echo $$ > /var/run/moiveme.pid
    export NODE_ENV=production
    exec /usr/bin/node /root/deploy/movie/server.js

    #
    #exec /usr/bin/node /root/deploy/movie/server.js >> /var/log/moiveme.log 2>&1
end script

pre-start script
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/moiveme.log
end script

pre-stop script
    rm /var/run/moiveme.pid
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/moiveme.log
end script

三、アップロード管理のnodejsアプリケーションを使う
nodejs-moiveアプリケーション(上のタスクスクリプト)を起動し、プロセスID:21257
 
  
~ start nodejs-moive
nodejs-moive start/running, process 21257

~ tail -f /var/log/moiveme.log
[2013-06-21T09:21:17.122Z] (moive.me) Starting

~ ps aux|grep node
root     21257  8.0  3.7 909204 37824 ?        Ssl  09:21   0:00 /usr/bin/node /root/deploy/movie/server.js

実行状態を確認してください.プロセス21257は正常に実行されます.
 
  
~ status nodejs-moive
nodejs-moive start/running, process 21257
nodejsアプリケーション21257を殺し、アップロード管理を通じて、nodejs-moiveアプリケーションは自動的に再起動されます.
 
  
~ kill -9 21257

#
~ tail -f /var/log/moiveme.log
[2013-06-21T09:21:33.662Z] (moive.me) Starting

# , ID
~ ps -aux|grep node
root     21280  9.1  3.7 909204 37704 ?        Ssl  09:21   0:00 /usr/bin/node /root/deploy/movie/server.js

# , ID ,
~ status nodejs-moive
nodejs-moive start/running, process 21280

これは便利です.私たちはアップロードを通じて、システムサービスでnodejsアプリケーションを管理できます.維持するのは簡単です!