|
|
我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行。我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行。
3 ^% ], ^5 X, x" r8 z首先,安装Forever:. H1 i2 v7 [4 Y1 b8 N
复制代码 代码如下:) H& z7 S4 e9 |: ^/ q
: Y' ~1 m' \3 j
npm install forever -gd+ u7 e2 S3 V1 Q* l2 D# k
% r, K. G4 S( {
这样Forever就安装好了,我们可以直接运行Forever命令:) X& U6 A+ j. d0 J0 x* |9 r- G
复制代码 代码如下:
# g* e8 l6 t/ C2 a! }2 C
9 z3 `! P0 L, q+ }( Nforever --help; w9 s3 x+ m& e0 B0 P
forever start app.js& r L; @2 w8 w4 M% p6 y( i
forever stop app.js
+ J" _' ^- c' L2 w; A
3 w/ G" e" \$ a: J" [( R% X* d上面命令先查看Forever帮助文件,然后运行app.js,然后停止app.js。我们要让Forever自动运行,先在/etc/init.d目录创建一个文件node,内容如下:
: j. C0 ^5 Y/ `+ `* E1 R复制代码 代码如下:2 e- Z6 ~8 l5 z) l4 G( e4 @; m& \
/ t4 w: t6 p1 V" {9 _8 @" p5 G
#!/bin/bash4 H& l/ E; t2 D5 N( X
#- }3 z" Y6 [! J( L, X: B
# node Start up node server daemon* K1 ~' s1 X' m
#! d% n% h! d, w; z" v) ]
# chkconfig: 345 85 150 _* ?& M% w, a6 D4 _
# description: Forever for Node.js
/ n( B% d, Q& d#, ?1 a, P$ g$ f/ ?/ H
PATH=/home/node/0.8.9/bin* U8 P3 e0 B2 e3 O
DEAMON=/home/ftp/1520/weizt-20120918-tKx/weizt.com/app.js3 z1 w6 A$ f* Q+ L
LOG=/home/hosts_log, S) B& ]# r8 X% X) W
PID=/tmp/forever.pid1 g* y, b# H T* D+ Y
case "$1" in, F! V0 {# O% V' |
start)
2 K4 M# P L: j5 N8 o8 x forever start -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON
, S& v2 b1 @' c4 G% G0 s" j( r- q
stop)5 y+ |0 w, Y7 O& l+ D( v& t
forever stop --pidFile $PID $DEAMON
7 u8 K) K. v1 f) D1 @4 H5 ^# E+ L) T! U
stopall)
/ _: {: T. g9 Q) x' D! ^$ ? forever stopall --pidFile $PID
; ?) |% }5 v0 ~3 `3 ^0 n" n; d8 e- S) Q
restartall); m0 R) P, _& S
forever restartall --pidFile $PID; L9 o! s7 C- Y) a) A
2 ^, q4 L* K2 f$ ^4 d
reload|restart)* {2 X) U# Z7 `% t' i! G; e
forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON! q/ W3 O9 v+ Z' o" @ \6 }
, \7 \# ]4 \6 \8 ?5 ?& p: \" w* J
list) X5 r) S0 x0 \6 k: d3 l K% D
forever list
$ o4 M9 E) ?/ I5 @& p+ y
% n1 A: c8 c3 L. s! K) p *)2 ~( j0 s0 \/ f' E; A: v
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"1 A* n- K2 [: ~1 y/ B
exit 12 @1 r/ s. o8 Q9 Y$ \3 ~
( G8 Z' b$ _% v0 l: P
esac
- m8 t- b' ]$ }: f) Wexit 0
& [1 i! w0 c1 x1 W- q( c+ n E3 u) |, F$ B s( y
以上代码是我在本地虚拟机的配置,根据实际情况修改相关参数,主要是DEAMON的路径参数,赋予该文件可执行权限,并运行chkconfig添加自动运行:: b7 c) ?" F& Z) }8 Y g I( M5 O
复制代码 代码如下:: @* M, R: Q0 Y6 _) J
4 |* l" F/ C" Dchmod 755 /etc/init.d/node
6 v8 _# p5 ~% I4 ychkconfig /etc/init.d/node on* r8 V0 [' @$ Q( \
% B9 |: j4 x4 @
reboot重启系统,通过浏览器进入网站可发现,该NodeJS已经可自动运行了,剩下的工作,就是好好研究NodeJS、Express和AngularJS,做一个真正属于自己的应用 |
|