nodejs 最近比较火,多实例配合nginx的反向代理,速度杠杠的。
最近项目上有用到nodejs,顺便弄了个启动脚本
1、安装 rpmdevtools,它可以方便的生成/etc/init.d/下面的启动脚本
1
2
3
4
5
|
yum
install
rpmdevtools
cd
/etc/init
.d/
rpmdev-newinit node
mv
node.init node
chmod
755 node
|
这样的话,会在当前目录生成一个node.init 的示例脚本。
如果你熟悉的话,也可以拷贝/etc/init.d/下的任意一个脚本进行修改
2、安装nodejs
1
|
yum
install
nodejs* npm --enablerepo=epel
|
3、给启动脚本添加内容,具体启动选项需要定制,大致如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/bin/sh
#
# node - Server-side JavaScript
#
# chkconfig: <default runlevel(s)> <start> <stop>
# description: <description, split multiple lines with \
# a backslash>
# http://fedoraproject.org/wiki/FCNewInit/Initscripts
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:
# Description:
### END INIT INFO
# Source function library.
.
/etc/rc
.d
/init
.d
/functions
exec
=
"/usr/bin/node"
prog=$(
basename
$
exec
)
js=
/tmp/test
.js
[ -e
/etc/sysconfig/
$prog ] && .
/etc/sysconfig/
$prog
lockfile=
/var/lock/subsys/
$prog
start() {
echo
-n $
"Starting $prog: "
# if not running, start it up here, usually something like "daemon $exec"
/bin/su
-l nginx -c
"$prog $js --port=8081 --dir=/tmp >/dev/null 2>&1"
/bin/su
-l nginx -c
"$prog $js --port=8082 --dir=/tmp >/dev/null 2>&1"
/bin/su
-l nginx -c
"$prog $js --port=8083 --dir=/tmp >/dev/null 2>&1"
/bin/su
-l nginx -c
"$prog $js --port=8084 --dir=/tmp >/dev/null 2>&1"
retval=$?
echo
[ $retval -
eq
0 ] &&
touch
$lockfile
return
$retval
}
stop() {
echo
-n $
"Stopping $prog: "
# stop it here, often "killproc $prog"
killproc $prog
retval=$?
echo
[ $retval -
eq
0 ] &&
rm
-f $lockfile
return
$retval
}
restart() {
stop
start
}
case
"$1"
in
start|stop|restart)
$1
;;
status)
status $prog
;;
*)
echo
$
"Usage: $0 {start|stop|status|restart}"
exit
2
esac
|
node启动需要几个选项,js文件、端口和上传目录,请根据需要定制,
对比网上的其它脚本,本脚本的特点
1、上文中nodejs以nginx用户身份运行,这个是很有必要的,使用root等于裸奔
2、node 完全在后台运行,不在屏幕上进行任何输入输出
3、支持chkconfig 开机启动
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1263483,如需转载请自行联系原作者