|
|
我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行。我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行。
$ i l) _4 g- W首先,安装Forever:4 {8 J" m. v9 q: c
复制代码 代码如下:
% q* ~" {( ?! N( E3 A$ x2 M. j% ?3 w8 C3 N, i
npm install forever -gd8 Y2 g1 r5 X, k9 H
. `2 \! Y& m' T$ f: d- o6 t2 r, T
这样Forever就安装好了,我们可以直接运行Forever命令:' V% d/ M% Y; X4 D
复制代码 代码如下:
! N( j% K8 e" S7 A
6 P4 f% u0 Q, rforever --help8 Q' J' N$ M. ]1 @
forever start app.js1 Y# B/ C/ m( [- D1 [* N: q. O0 Q
forever stop app.js" w( }" ]1 e% N& F9 P, s
% z% o1 o. I4 b0 \1 o0 B* R* P9 L
上面命令先查看Forever帮助文件,然后运行app.js,然后停止app.js。我们要让Forever自动运行,先在/etc/init.d目录创建一个文件node,内容如下:
1 ~, u1 B, s0 s/ s4 z; S' z6 G复制代码 代码如下:
8 r$ c' Q& V* [
: x+ @, |6 f2 g2 k6 Q& P% ? w#!/bin/bash
& n# m3 y, ], _) l- D9 e#. d1 U6 X8 c4 Z
# node Start up node server daemon
6 w2 Y$ ^0 @* i#
$ d& m$ x6 S& `7 h: E! d' g7 v# chkconfig: 345 85 15
2 c! U6 g4 q" l6 d. h6 D# description: Forever for Node.js
. Z& f( Z5 v4 D#
4 m3 Z( k _, I4 l" N1 V3 _+ q# s, K2 qPATH=/home/node/0.8.9/bin3 L6 X4 G+ c! Y# A( p4 Q
DEAMON=/home/ftp/1520/weizt-20120918-tKx/weizt.com/app.js8 x4 j+ T6 o j& ^+ C
LOG=/home/hosts_log, U; p9 P$ y9 G2 |
PID=/tmp/forever.pid1 _; X# y4 Q. A/ D
case "$1" in" a5 w8 o1 @8 }/ U1 U' e
start), g, f% e! o# B2 _
forever start -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
5 V6 G8 A% ]# z; W
2 i! M1 @8 [" p+ m: r+ J* M stop)
5 Q" w" N7 Z2 G) f- e i+ p1 Y1 c& O2 U$ L forever stop --pidFile $PID $DEAMON
' c+ _8 ~: y! x5 c7 r; Q2 A! C4 D H. k# N- r4 `4 t: i J" ?
stopall)# i$ H7 ?6 Q0 o3 B; H7 Y
forever stopall --pidFile $PID
) n2 a$ o$ l$ H: E- S
( p% {2 {: Q9 c7 c4 D restartall)! q# K7 H& X3 H. C
forever restartall --pidFile $PID
" p& M5 P! W3 N) p! U" r6 l; {9 [8 o# V9 c z0 n( Q, j
reload|restart)
) v$ q& o. [0 Y r forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
" |& @1 b; L, |( ?' H1 a+ Y1 Q0 d) g6 C$ V: X
list)) o1 \ T; f7 [
forever list: `8 J7 ]4 H4 t
8 t# {/ S w; p( {6 n( s *)9 |. U# b# Z7 Q4 L9 V; d
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"9 M; m, |- `; `5 a
exit 11 q& N# N6 w5 F; ?: |0 ] O( G
G5 ]2 C4 c0 W0 r) I1 R8 O% o
esac3 [ |' u J% K- c+ u! H; t
exit 0* j; u m; i6 ]" p
' H0 w3 {% D, \3 s
以上代码是我在本地虚拟机的配置,根据实际情况修改相关参数,主要是DEAMON的路径参数,赋予该文件可执行权限,并运行chkconfig添加自动运行:0 U$ T% M) v( u$ _# s
复制代码 代码如下:" e9 P8 R" s( _: g5 j. I+ f
4 d# U& g+ o# }# P* z' R: B* Q+ r7 j
chmod 755 /etc/init.d/node
; G3 U, v9 A- c7 p5 r( W0 hchkconfig /etc/init.d/node on
C9 w9 F Z9 n4 K) K8 B! q
* i! l8 V% g- e3 H" {+ d; Y; }/ [reboot重启系统,通过浏览器进入网站可发现,该NodeJS已经可自动运行了,剩下的工作,就是好好研究NodeJS、Express和AngularJS,做一个真正属于自己的应用 |
|