[乐意黎]Centos里开机自启动Node 服务程序

要把一个node.js程序移植到一台centos服务器,要求开机自启动。

使用forever启动一个node.js程序很简单,一行代码就行:forever start server.js。是不是很简单呢?

假设工程是位于 /home/aerchi/app-tool 下面,server.js中有一句如下代码:

若需要在centos下开机启动node.js程序, 有两种方式::
 



第一种很简单,只需要在/etc/rc.local文件末尾添加如下语句::

forever --sourceDir /home/aerchi/app-tool start server.js

请忽略下面的工程路径,仅供参考:

 

   不过有一个地方需要注意,就是要确保/etc/rc.d/rc.local具有可执行权限,没有的话记得要执行如下语句修改权限:

  chmod a+x /etc/rc.d/rc.local

这样就完成了所有的操作,可以自己用/etc/init.d/forever start试试。

好了,保存好之后,我们改修改一些权限及命令让它成为可执行,依次输入如下语句即可:

     chmod 755 forever
     chkconfig --add forever
     chkconfig forever on


 第二种方法要麻烦点,就是在/etc/init.d目录下添加一个服务,首先我们命令行中输入vi node(也可以其他名字,如forever),
然后输入如下代码:        
目录:   /etc/init.d
文件名: node

(1). 下面这种指定目录

#!/bin/bash
# chkconfig: 345 88 08
# description: Forever for node.js

#project dir
PROJECT_DIR=/home/aerchi/app-tool
#node service file name
ENTRY_FILE=bift.js

LOG=/var/log/forever.log
PID=/var/run/forever.pid

#node bin path
export PATH=$PATH:/usr/local/node/bin

node=node
forever=forever

case "$1" in
	start)
		$forever --sourceDir $PROJECT_DIR start -l $LOG --pidFile $PID -a $ENTRY_FILE
		;;
	stop)
		$forever --sourceDir $PROJECT_DIR stop --pidFile $PID $ENTRY_FILE
		;;
	stopall)
		$forever stopall --pidFile $PID
		;;
	restartall)
		$forever restartall --pidFile $PID
		;;
	reload|restart)
		$forever --sourceDir $PROJECT_DIR restart -l $LOG --pidFile $PID -a $ENTRY_FILE
		;;
	list)
		$forever list
		;;
	*)
		echo "Usage: /etc/init.d/forever {start|stop|restart|reload|stopall|restartall|list}"
		exit 1
		;;
esac

 请把上述的PROJECT_DIR、ENTRY_FILE、LOG 都改成配置对应的.

(2).下面这种,无指定目录

#!/bin/bash
###BEGIN INIT INFO
# Provides: aerchi
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Desc: Start daemon at boot time
# Description:  Enable node service provided by daemon.
### END INIT INFO
# chkconfig: 345 88 08
# description: Forever for Node.js


#Optional, log path
LOG=/var/log/node.log
#Required, forever pid
PID=/var/run/node.pid

#our node project file path:: /usr/node-app/bift.js
DEAMON=/usr/local/app-nodejs/bift.js


#node bin path, like::/usr/local/bin
export PATH=$PATH:/usr/local/node/bin

#node lib path:: node_modules
export NODE_PATH=$NODE_PATH:/usr/local/node/lib/node_modules

#please don't modify below lines

node=node
forever=forever

case "$1" in
	start)
		$forever start -l $LOG --pidFile $PID -a $DEAMON
	;;
	stop)
		$forever stop --pidFile $PID $DEAMON
	;;
	stopall)
		$forever stopall --pidFile $PID
	;;
	restartall)
		$forever restartall --pidFile $PID
	;;
	reload|restart)
		$forever restart -l $LOG --pidFile $PID -a $DEAMON
	;;
	list)
		$forever list
	;;
	*)
		echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
	exit 1
	;;
esac

上述(1)或(2)任选

ECS 退出,:wq 保存

好了,当服务器重启后,node js 服务会自动打开。
可使用下述命令:
service node start
service node stopall
service stopall


乐意黎

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页