【非常重要】forever在Linux上实现Node.js项目自启动【开机自动启动配置】

参考:https://blog.csdn.net/yuanguozhengjust/article/details/37512993

 

参考【非常经典】:https://cnodejs.org/topic/5059ce39fd37ea6b2f07e1a3

 

本人实战总结和代码优化!

 

我使用的是Centos7系统,配置比较简单,基于Centos7的开机启动其实就2个步骤:

第一步:写一个成功的shell脚本test.sh【我写一个forever的执行脚本,你在本地执行脚本就会运行,说明脚本是ok的】

#!/bin/bash
#
# node      Start up node server daemon
#
# chkconfig: 345 85 15
# description: Forever for Node.js
# 上面这段解释代码必须要,否则你添加到chkconfig会提示错误:service X does not support chkconfig


# 定义一些字符串变量,在shell中字符串可以不需要加"",所以这里直接写路径【一定要绝对路径,避免路径问题执行出错】
PATH=/usr/local/nodejs/bin
DEAMON=/root/nodejs/test.js
log_path=/root/nodejs/logs
out_file=/root/nodejs/logs/out_file_test.log
err_file=/root/nodejs/logs/err_file_test.log


# 这里的$1 是当前shell文件执行命令传入的参数,比如执行【./nodej_test start】命令,自动会执行start匹配的命令
# 我这里没有使用pid进程管理,直接开启某个执行文件或停止所有即可【根据自己的需求来】
case "$1" in
    start)
        forever start -p $log_path -o $out_file $DEAMON
        ;;
    stopall)
        forever stopall
        ;;
    restartall)
        forever restartall
        ;;
    list)
        forever list
        ;;
    *)
        echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
        exit 1
        ;;
esac
exit 0

第二步:把他放入/etc/init.d开启启动目录下,然后使用chkconfig --add ,增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

注意:我的项目路径是/root/nodejs/test.js,在这个nodejs目录下创建了上面的test.sh脚本,所以我在/etc/init.d/目录下载创建一个shell脚本文件node_test.sh,我通过node_test.sh来启动上面的test.sh脚本【因为test.sh要传入一个start参数,开机启动是无法传参的】

# 这里非常重要,必须给test.sh文件传入一个参数,我传入一个启动参数start
bash /root/nodejs/test.sh start

最后把node_test.sh文件添加到系统中开机启动即可

# 第一步:这里给与node_test.sh的权限问题,尤其是755是别的文章介绍的,我也加上,centos7似乎不加也没问题
chmod +x node_test.sh
chmod 755 /etc/init.d/node_test.sh

# 第二步:把node_test.sh添加到系统服务器上开机启动
chkconfig --add /etc/init.d/node_test.sh

# 第三步:启动
chkconfig node_test.sh on //开启node_test.sh服务

#第四步:查看
chkconfig --list
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值