linux开启启动nodejs服务
需求
linux服务器开机自启动nodejs。
方法
首先安装forever来守护进程
1 | npm install forever -g |
然后安装forever-service来自动生成/etc/init.d下的service
1 | npm install forever-service -g |
然后注册服务
forever-service他会自动寻找目录下的app.js,所以直接在项目目录下运行
1 | forever-service install myService |
现在切换到/etc/init.d/这个目录,可以看到有个新的文件叫myService,用service myService start即可启动
最后修改开机启动项
在/etc/rc.local里面添加一句即可
1 | service myService start |
注
启动、停止、重启服务命令
1 | // 启动 停止 重启服务的命令 |
不是app.js作为项目启动文件
1 | // 如果你的项目不是以app.js作为启动文件的,比如你是以index.js作为启动文件的,那么如何生成服务呢? |
如果forever不是全局安装的话
1 | // 如果forever不是全局安装的话,生成service的时候会报错,提示forever not found。这时候运行下面的命令指定forever路径即可 |
如果启动脚本需要传值
1 | // 如果启动脚本有一些参数的话,调用如下 |
尝试过的方法
用&来启动
在rc.local里面写入下面这行代码:
1 | node /usr/local/hello/app.js & |
结果并没有运行,后来我在根目录运行这行代码,提示找不到依赖包,于是修改rc.local如下
1 | cd /usr/local/hello/ |
结果并没有启动,用ps -ef命令查看进程,并没有找到nodejs
用forever启动
在rc.local里面写入下面这行代码:
1 | cd /usr/local/hello/ |
结果也是没有启动
用写好forever的shell脚本来启动
1 | // a.sh |
还是不行。。。
总结一下失败的方法
应该看下linux系统的启动日志,找出出错原因。
参考文章
https://lvjianqiao.top/2018/03/06/linux%E5%BC%80%E5%90%AF%E5%90%AF%E5%8A%A8nodejs%E6%9C%8D%E5%8A%A1/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 jianqiao0313!
评论