栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

简单方便的linux定时任务管理器——supervisor

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单方便的linux定时任务管理器——supervisor

背景

我们在linux服务器上部署模型或者一个长期运行的程序的时候,通常使用的是nohup方法,因为nohup真的非常简单,只需要一行命令即可,但是nohup不好的地方就在于无法监控,并且无法自动中断重启,如果我们要查看一个nohup的程序是否在运行,需要每次输入ps -aux | grep "运城程序"才可以,比较繁琐,因此这里就推荐超好用的supervisor定时管理服务,并介绍一下他的核心用法,可以轻松上手

初次安装

由于supervisor在服务器上已经安装好了,等下次有机会自己安装的时候再更新~

3步完成部署

首先介绍一下supervisor的安装路径,通常会安装在/etc/下面,在/etc/supervisord.conf文件的最下面,我们可以看到supervisor的加载文件路径,这个路径是可以更改的

[include]
files =/etc/supervisord.d/*.ini

知道加载文件的路径后,咱们就可以开始部署程序了

  1. 编写.ini文件,格式如下
[program:deploy]
process_name=%(program_name)s
command=  /home/venv/bin/python  /home/python/deploy_api.py
directory= /home/python/
environment=PYTHONPATH=/home/
stdout_logfile=/home/logs/deploy.log
stderr_logfile=/home/logs/deploy.log
numprocs=1
numprocs_start=0
autostart=true
autorestart=true
  • program: deploy,这里的deploy决定了在supervisor中显示的名字,不同与其他重名
  • command: 第一个命令为python所在目录,第二个命令为想要运行的程序(这是以python进行距离,如果是java等其他一样)
  • directory: 项目目录,不一定非得是运行程序的上级
  • enviroment: 在这里是python环境的上级,anaconda也是类似的
  • stdout_logfile: 是输出的记录
  • stderr_logfile: 是错误的记录
  • numprocs: 运行的进程数
  • numprocs_start: 开始进程的编号
  • autostart: 是否自动启动
  • autorestart: 是否自动重启
  1. 在写.ini文件保存后,我们可以直接在centos上运行supervisorctl update进行更新,在ubuntu上可能得加上sudo
  2. 然后我们在命令行上输入supervisorctl就可以看到咱们的程序名字出现了,如果显示RUNNING那就代表程序正常运行了
注意点
  1. ini文件中最好不要写中文注释,可能会导致ini文件无法运行
  2. 要使用对应环境的python去运行,ini文件必须写对,不然会出现spawn error
其他语法
  1. sudo supervisorctl shutdown可以关闭supervisor
  2. 重启命令sudo supervisord -c /etc/supervisord.conf
  3. sudo supervisorctl reload重新加载所有supervisor定时命令,在多人合作时最好不要用
  4. 在supervisorctl命令行中,输入status刷新状态
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号