用 PM2 做 Python 进程管理也太好用了吧
前言
说到进程管理,后端和运维的同学都不陌生。生产项目以及一些脚本任务都需要进行进程管理。现在市场上用得最多的当属 supervisor 了,但是它只能运行在 Unix-Like 的系统上,也就是说 supervisor 不能再 windows 上运行。
我们这里说的是另外一个进程管理工具 PM2,PM2 不仅仅适用于 Unix-Like 系统,同样适用于 windows 系统。这点对于开发者来说也是个福音,下面我们来说说 PM2 的简单使用。
一、PM2 的安装
安装 PM2,需要用到 nodejs 和 npm,首先我们来安装 nodejs 和 npm。
安装 nodejs 和 npm
安装好 nodejs 和 npm 后,运行下node -v
测试下是否安装成功。
安装 pm2
安装好之后,输入pm2 -v
查看版本。
二、PM2 的使用
我们主要介绍下 PM2 如何管理 python 程序,这里我们新建一个简单的 python 文件test.py
,代码如下:
我们用 PM2 启动一下看看,输入pm2 start 'python test.py'
。
如下图,启动后我们可以看到日志里代码运行了多次,这是为什么呢?下面我们先来介绍 pm2 常用的一些操作吧。
PM2 的常用操作
启动一个应用:
pm2 start test.py
另外,我们可以在启动应用时添加相关参数:
从以上参数我们得知,应用默认会自动重启应用。如果我们不要自动重启,就要加上--no-autorestart
参数。
我们加上参数测试一下,pm2 start test.py --no-autorestart
。这时我们看到应用就只运行了一次。
查看应用状态输入
pm2 status
或者pm2 ls
查看任务列表。重启应用输入
pm2 restart {id}
或者pm2 reload {name}
备注:{id}指的是 pm2 任务 ID,{name}指的是 pm2 任务的名称。下面例子都用{id}。
查看应用日志输入
pm2 logs {id}
停止应用输入
pm2 stop {id}
删除应用输入
pm2 delete {id}
查看应用详情输入
pm2 describe {id}
以上就是 pm2 的常用操作,下面主要介绍下 python 程序的启动配置。
配置 pm2 启动脚本
我们在运行一个 python 应用时,通常要指定 python 虚拟环境、传递额外参数、设置日志路径等。如果都将配置在命令行上写,不仅不方便输入,而且不便于管理。这时我们可以用到以配置文件启动的方式来处理。
以 json 配置文件启动
命令:pm2 start config.json
还是以上述 test.py 为例,我们此时启动该程序要求:
指定程序路径
指定 python 虚拟环境
指定日志输出路径
不要自动重启
为了满足上述需求,我们首先来看看 json 配置文件的主要参数
根据参数,我们来写运行配置文件pm2.json
最后,我们来运行一下任务:pm2 start pm2.json
。查看下日志:pm2 logs
,大功告成。
设置 pm2 自启动
最后讲一下 pm2 的自启动设置,没设置前,服务器重启后,pm2 是不会自动重启的,因此我们的应用需重新启动了。
设置方法很简单,输入pm2 startup
,然后根据提示设置即可。
小结
本文主要讲了使用 pm2 来作为 python 程序的进程管理,pm2 轻量简单,适合后端快速部署应用,大家都用起来吧。
版权声明: 本文为 InfoQ 作者【芥末拌个饭吧】的原创文章。
原文链接:【http://xie.infoq.cn/article/028388f063d2fd17a7a568451】。文章转载请联系作者。
评论