supervisor的安装和使用方法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"supervisor的安装和使用方法",在日常操作中,相信很多人在supervisor的安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"s
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
互联网科技图片
互联网金融 科技
互联网科技股票
广州宏创互联网科技
互联网科技缩写
沃里互联网科技
天下捷融互联网科技
深圳期待互联网科技
四个字互联网科技公司取名
隆华科技工业互联网
金融科技与互联网金融相同和不同
昊天互联网科技有限公司
杭州壁岐互联网科技有限公司
互联网媒体平台算高科技产业
翼展科技 首家互联网医院
全球科技与互联网公司市值变化
青岛互联网科技园
伍佰万互联网科技是干嘛的
六子台科技互联网展会
如何强化互联网金融科技
今日互联网科技
上海喔噻互联网科技
哈尔滨秒房互联网科技有限公司
互联网科技项目计划书材料类
福建科技产业互联网发展
崇明区互联网教育科技售后服务
阿里互联网科技企业
广州梦谷互联网科技有限公司领导
昆明中奇联合互联网科技
玉溪新华互联网科技怎么选