nodejs 启动脚本

简介:

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,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
JavaScript 前端开发 Unix
Node.js Shell 脚本开发指南(中)
Node.js Shell 脚本开发指南(中)
67 0
|
4月前
|
JavaScript 前端开发 Shell
Node.js Shell 脚本开发指南(上)
Node.js Shell 脚本开发指南(上)
97 0
|
6月前
|
数据采集 JavaScript Windows
用nodejs脚本实现网站自动签到功能
有一个网站每天签到可以获取流量,之前每天都是自己打开网页登录然后手动点签到,但是如果连续7天没签到之前获取的所有流量都会清空。类似的需求会有很多,很多网站、应用也都会提供签到获取积分、金币、能量、饲料...其实用node脚本来实现每天自动签到很简单的
229 1
|
3月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
81 0
|
4月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
38 0
|
6月前
|
Windows
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
103 0
|
4月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
44 0
|
3月前
|
监控 JavaScript 前端开发
统计项目代码行数轻松搞定:使用 Node.js 脚本自动统计代码量
统计项目代码行数轻松搞定:使用 Node.js 脚本自动统计代码量
73 0
|
3月前
|
JavaScript 持续交付 开发工具
Git自动化利器:使用Node.js脚本定制化提交消息处理
Git自动化利器:使用Node.js脚本定制化提交消息处理
63 0
|
4月前
|
JavaScript 前端开发 Unix
Node.js Shell 脚本开发指南(下)
Node.js Shell 脚本开发指南(下)
60 0