Advanced, production process manager - (PM2)

pm2

在Linux系统下,经常会遇到一些小软件本身是无法在后台运行的,通常的做法借助其他工具,例如nohup,

nohup node app.js >> output.log 2>&1 &

更高级的有进程管理工具supervisord,或者包装成系统Service,亦或者用Docker等多种方案,但,各有利弊,使用起来,差强人意。
其中最方便的是nohup,使用过程中发现它最大的问题是经常莫名的自动崩溃,需要再次进入系统手工启动。
其他几种方案显得笨重,本来我就是希望启动一个小工具而已,上来一堆配置,就让人崩溃。。。

一直以来除了迁就nohup,有没有更好的方案呢?
这两天部署一个node应用,发现其生态有几个不错的后台服务管理工具,PM2就是其中之一,一见钟情,其他的就直接不想看了。

这个工具除了依赖Node,可以说没有其他缺点了,功能无比强大,最重要的是使用起来也同样简单无比。

PM2主要的功能包括后台服务启动、管理(list、delete等)、集群(多实例负载)、监控等,强的一笔,下面简单感受一下,

1,启动一个服务

如果你是一个node应用,直接 pm2 start xxx.js 就启动了,你要高可用?没问题,
pm2 start app.js -i 4,启动4个实例,或者等同于CPU数量 pm2 start app.js -i max,请求会在这几个实例上做均衡,如图:

PM2

如果你是一个普通的应用(非Node),启动的方式:pm2 start -x command

2,常用命令

1,管理

# 查看所有启动的应用,如下图
pm2 ls

# 删除某应用
pm2 delete app

# 停止某应用
pm2 stop app

# 启动某应用
pm2 start app

# 重启某应用,其实就是执行了stop和start
pm2 restart app
PM2

2,监控 pm2 monit
可以看到每个应用CPU、内存、日志、吞吐量等,这个可视化的UI,体验很好。。

PM2

更多

https://pm2.io/doc/en/runtime/overview/

你可能感兴趣的:(Advanced, production process manager - (PM2))