每天进步一点点:PM2设置开机自启动

每天进步一点点:PM2设置开机自启动

之前的文章中,我介绍了可以使用PM2来让node.js程序一直运行,但是这样做的一个前提是我们要执行一下pm2 start xxx.js命令。


(图源 :pixabay)

那么新问题来了,每次我们需要重启服务器,都需要重新执行一下pm2 start xxx.js命令,是不是很麻烦,有没有办法让PM2在开机时自动启动我们的应用?

pm2 startup

方式之一是使用pm2 startup,大致步骤如下:

pm2 start xxx.js启动应用。
pm2 save保存
pm2 startup来设置开机自动启动。

但是因为我的PM2是本地安装的(并非全局安装),而且也不想以root用户直接运行应用,所以不去考虑这种方法。

使用rc.local

第二种方法是使用rc.local。

使用rc.local可能是相当过时的办法,但是对我而言,简单且好用就可以。

首先创建rc.local文件,并设置执行权限

sudo vi /etc/rc.local
sudo chmod u+x /etc/rc.local

在rc.local文件第一行加入如下语句

#!/bin/sh -e

否则,可能会出现类似如下错误:

之后在rc.local中添加如下内容:

su -c '~/bin/pm2 start ~/xxx/app.js' --login userxxxx

其中-, -l, --login代表:

Provide an environment similar to what the user would expect had the user logged in directly.

这样就会加载用户的环境,否则会出现类似如下错误:

/usr/bin/env: ‘node’: No such file or directory

因为在pm2的脚本中使用了如下内容:

#!/usr/bin/env node

验证

进行上述设置后,直接重启服务器,发现我们的服务访问正常,说明上述设置 无误。

需要注意的几个坑上边已经提到啦(很不幸,我都踩到了,哈哈)

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: ‘每天进步一点点:PM2设置开机自启动’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×