supervisor的安装和使用方法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"supervisor的安装和使用方法",在日常操作中,相信很多人在supervisor的安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"s
千家信息网最后更新 2025年12月02日supervisor的安装和使用方法
这篇文章主要介绍"supervisor的安装和使用方法",在日常操作中,相信很多人在supervisor的安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"supervisor的安装和使用方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、安装
源码安装
先下载最新的supervisor安装包:https://pypi.python.org/pypi/supervisor , 如:
cd /usr/local/srcwget https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.2.tar.gztar -zxvf supervisor-3.3.2.tar.gzcd supervisor-3.3.2python setup.py install #本地python版本为python2.7# python2.7 setup.py install #本地python版本为python3以上
二、配置
1.生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
2.启动
supervisord -c /etc/supervisord.conf
查看 supervisord 是否在运行:
ps aux | grep supervisord
3.配置
打开配置文件
vim /etc/supervisord.conf
在配置文件底部,配置include
[include]files=/etc/supervisor/*.conf #若你本地无/etc/supervisor目录,请自建
用supervisor管理进程,配置如下:
cd /etc/supervisorvim ossfs.conf # 这里的文件名称自定义
加入以下内容:
; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名[program:your_program_name] command=python server.py --port=9000;numprocs=1 ; 默认为1;process_name=%(program_name)s ; 默认为 %(program_name)s,即 [program:x] 中的 xdirectory=/home/python/tornado_server ; 执行 command 之前,先切换到工作目录user=oxygen ; 使用 oxygen 用户来启动该进程; 程序崩溃时自动重启,重启次数是有限制的,默认为3次autorestart=true redirect_stderr=true ; 重定向输出的日志stdout_logfile = /var/log/supervisord/tornado_server.logloglevel=info
这里是启动要配置的参数,请根据自己的项目自定义添加
更改了supervisor配置文件,需要重启,运行以下指令:
supervisorctl reload
4.supervisorctl的用法
supervisord : 启动supervisorsupervisorctl reload :修改完配置文件后重新启动supervisorsupervisorctl status :查看supervisor监管的进程状态supervisorctl start 进程名 :启动XXX进程supervisorctl stop 进程名 :停止XXX进程supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
5.若不使用控制台来管理进程,用浏览器来管理,该如何配置?
打开配置文件
vim /etc/supervisord.conf
配置 inet_http_server
[inet_http_server] port=127.0.0.1:9001 ; 服务器ipusername=xxx ;自定义password=xxx ;自定义
三、设置开机启动
vim /etc/init.d/supervisord
添加以下脚本
#! /bin/sh### BEGIN INIT INFO# Provides: supervisord# Required-Start: $remote_fs# Required-Stop: $remote_fs# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Example initscript# Description: This file should be used to construct scripts to be# placed in /etc/init.d.### END INIT INFO# Author: Dan MacKinlay# Based on instructions by Bertrand Mathieu# http://zebert.blogspot.com/2009/05/installing-django-solr-varnish-and.html# Do NOT "set -e"# PATH should only include /usr/* if it runs after the mountnfs.sh scriptPATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/binDESC="Description of the service"NAME=supervisordDAEMON=/usr/local/bin/supervisordDAEMON_ARGS=" -c /etc/supervisord.conf"#PIDFILE=/var/run/$NAME.pidPIDFILE=/tmp/$NAME.pidSCRIPTNAME=/etc/init.d/$NAME# Exit if the package is not installed[ -x "$DAEMON" ] || exit 0# Read configuration variable file if it is present[ -r /etc/default/$NAME ] && . /etc/default/$NAME# Load the VERBOSE setting and other rcS variables. /lib/init/vars.sh# Define LSB log_* functions.# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.. /lib/lsb/init-functions## Function that starts the daemon/service#do_start(){ # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time.}## Function that stops the daemon/service#do_stop(){ # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL"}## Function that sends a SIGHUP to the daemon/service#do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0}case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg "Reloading $DESC" "$NAME" #do_reload #log_end_msg $? #;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;;esac:
# 设置该脚本为可以执行sudo chmod +x /etc/init.d/supervisord# 设置为开机自动运行sudo update-rc.d supervisord defaults# 试一下,是否工作正常service supervisord stopservice supervisord start
若报错:insserv: warning: script 'service' missing LSB tags and overrides,请执行:
sudo apt-get remove insserv
到此,关于"supervisor的安装和使用方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
配置
进程
文件
方法
使用方法
学习
管理
运行
名称
更多
版本
目录
脚本
工作
帮助
实用
接下来
内容
参数
底部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国水稻数据库九稻325
cad怎么软件开发
网络安全的绘画图片高级
好的软件开发设计公司哪家好
服务器音质排名
广州千人千面互联网科技
第三方网络安全检测
用dos命令连接数据库
企业数据库管理系统案例分析
数据库中什么是数据库的对象
泰安智慧养老软件开发软件
美国突袭德国没收服务器
数据库中的从属关联
从哪里下载服务器
和平区实惠的软件开发团队
中职生软件开发
数据库增删改查模板
职工网络安全思想分析
多功能软件开发技术指导
宣化市网络安全检查
贝加尔网络技术有限公司
谢希仁网络安全
嵌入式软件开发需求文档
深圳软件开发青春饭
用什么工具画数据库表
鳞状细胞癌数据库
班级与学生关系的数据库
武冈天气预报软件开发
软件开发商怎么扩大业务
尊穗网络技术服务中心