supervisor的安装和使用方法
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,这篇文章主要介绍"supervisor的安装和使用方法",在日常操作中,相信很多人在supervisor的安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"s
千家信息网最后更新 2025年01月28日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安全错误
数据库的锁怎样保障安全
石柱县网络安全和信息化
无线网络技术的背景
首次运行创建数据库
通讯网络安全整改报告
软件开发工程师实习期工资多少
大专软件开发方向找什么工作
中国股票数据库包
数据库对象由什么构成
徐汇区视频系统服务器
服务器如何进安全模式
芜湖网新网络技术有限公司泡澡桶
任丘市黑鲨软件开发工作室
电脑服务器怎么开端口
浏览器进入淘宝服务器未发送数据
数据库索引移位
电商平台需要多大服务器空间
技术软件开发要求
数据库如何存储压缩文件
对于网络安全误解
网络安全数据安全上市公司
数据库系统工程师很好考
河南企业软件开发服务费
万人服务器价格
万户网络技术支持
提示管家婆软件服务器到期
网络安全等级测评是做什么
网络安全管理人员配置
人工智能汽车网络安全
高中数据库应用系统课件
yii2 多个数据库