背景:比如我们启动一个node服务,当我们将终端窗口关闭之后,就无法再访问网址了,这个时候我们就需要借助pm2来实现,关闭终端窗口后仍然可以访问项目,需要具有后台运行和自动重启,这两个能力。
1. 全局安装pm2
npm i pm2 -g
2. 启动项目
// 当前文件夹下运行
pm2 start app.js --name web
终端关闭之后,在浏览器中依旧可以访问我们网址。
3. 我们还可以再次打开终端窗口,进行其他指令操作
3.1. 查看当前电脑运行了哪些项目
pm2 ls
3.2. 停止项目
// pm2 stop name 使用项目名称
pm2 stop web
// 停止所有应用
pm2 stop all
// pm2 stop id 或者使用项目id 更加简短方便
pm2 stop 0
3.3. 重启项目
// pm2 restart name 使用项目名称
pm2 restart web
// 重启所有进程
pm2 restart all
// pm2 restart id 或者使用项目id 更加简短方便
pm2 restart 0
3.4. 删除项目
// pm2 delete name 使用项目名称
pm2 delete web
// pm2 delete id 或者使用项目id 更加简短方便
pm2 delete 0
3.5. 杀掉pm2管理的所有进程
pm2 kill
3.6. 启动静态服务器,将目录dist作为静态服务器根目录,端口为8080
pm2 serve ./dist 8080
3.7. 设置pm2开机自启
开启启动设置,此处是CentOS系统,其他系统替换最后一个选项(可选项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)
pm2 startup centos
然后按照提示需要输入的命令进行输入
最后保存设置
pm2 save
3.8. pm2 以 windows 服务运行
两种方案:pm2-windows-startup和pm2-windows-service
pm2-windows-startup 在 Windows Server 2012 上可行,故选择 pm2-windows-startup 作为解决 Node.js 应用开机自启动的方案。
// 全局安装pm2
npm i pm2 -g
// 全局安装pm2 Win自启包:pm2-windows-startup
npm install pm2-windows-startup -g
// 安装配置包:pm2-startup
pm2-startup install
// 推荐使用pm2配置文件启动项目,关于pm2配置文件可以参考如下配置文件pm2.config.json
{
"apps":{
"name":"myproject-web", // 项目的别名
"script":"index.js", //需要启动程序的入口文件
"watch":"true", // 开启文件变化监听
"ignore_watch":[ // 忽略文件变化监听文件
"node_modules",
"logs"
],
"error_file":"logs/error.log", //配置错误日志输出文件地址
"out_file":"logs/consoles.log", //配置打印日志输出文件地址
"log_date_format":"YYYY-MM-DD HH:mm:ss", //配置日志日期格式
"instances":2 //配置项目所占用的核数,小于等于服务器的总核数量
}
}
// 启动项目:使用pm2启动项目,提前将命令行切换到项目根文件夹下后执行如下命令(如果不切换到项目文件下可以在启动时将项目路径加入启动:pm2 start 路径\index.js):
pm2 start pm2.config.json ,如果没有配置pm2配置文件,那么可以直接通过:pm2 index.js 或 pm2 app.js启动
// 将此项目保存起来,开机后才会自动重启,如:
pm2 save
// 重启服务器,可以正常访问应用,当然我们通常使用命令行下键入命令:pm2 list查看当前启动的项目,这里命令行路径没有要求,如:
pm2 list
作者:yummyMao
链接:https://www.jianshu.com/p/03ddbe25abb5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
有话要说