超简单!Centos7开机自启动node应用

最简单,最省事的开机自动启动node应用的方法————PM2!

其次还有…

以下方法按优先级排序。

用PM2实现nodejs自启动

此方法很适合用于运维API的环境使用,文件更新时PM2可以自动重启!

假定你已经在主机上配置好了node环境,并上传了可正常运行的网站源码在www目录下。

# 全局安装pm2
[nooldey@local www]$ npm i pm2 -g
# 使用pm2启动node
[nooldey@local www]$ pm2 start /var/public/www/app.js --watch --name="node-site"
# 保存进程列表
[nooldey@local www]$ pm2 save
# 设置开机启动
[nooldey@local www]$ pm2 startup centos
# 设置权限(在我的centos未找到对应文件,所以没有执行以下的操作)
[nooldey@local www]$ chmod +x /etc/init.d/pm2-init.sh
[nooldey@local www]$ chkconfig –add pm2-init.sh

更详细的pm2配置指令参考github上https://github.com/Unitech/pm2

将Node应用封装为系统服务实现自启

这个方法适合于固定站点运维,缺点是无法自动实时监听重启。

不依赖插件方法:将node网站启动脚本封装为CentOS的系统服务

[root@nooldey ~]# cd /usr/lib/systemd/system/
[root@nooldey ~]# vi /usr/lib/systemd/system/nodeapp.service

在新建的nodeapp.service文件中填写内容:

/var/www/ROOT/app.js应对应为你所搭建的node站点的入口文件。

/usr/bin/node对应为node安装后的执行路径。

如果不确定node路径,可用whereis node搜寻,并拷贝bin路径。

[Unit]  
Description=nodeapp.service
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/bin/setsid /usr/bin/node /var/www/ROOT/app.js
Restart=/bin/pkill node && /bin/setsid /usr/bin/node /var/www/ROOT/app.js  
ExecStop=/bin/pkill node  
ExecReload=
PrivateTmp=true
RemainAfterExit=yes
ExecStartPre=

[Install]
WantedBy=multi-user.target

启动服务测试是否可以正常访问:

[root@nooldey ~]# systemctl start nodeapp

咦,正常访问了!那就赶快加入开机自动:

[root@nooldey ~]# systemctl enable nodeapp

编写脚本实现nodejs开机自启

这个方法需要登录…

写法太简陋,仅作为思路参考

/etc/profile.d/下新建脚本customer.sh:

nohup node /var/public_root/www/app.js &
NOOLDEY

本文作者:NOOLDEY

做一个诗情画意的码农,皮皮猪,我们走!

原文链接: http://zhuweisheng.com.cn/tech/node-pm2/

本站文章如无特殊声明均为原创,创作不易,转载请注明来源,谢谢!