针对人群不同,网站做细分,上海做网站的小公司有哪些,公司网络营销,专业建设 验收 网站简介
supervisor是一个client/server系统,允许用户控制多个类unix系统的进程,摆脱rc.d脚本的不方便性.supervisor具有简单,集中化管理,搞笑,可扩展性,高兼容.
整套软件包含:supervisord(守护进程),supervisorctl(命令行工具),web server(一个web交互界面),XML-RPC 交互 安装 …简介
supervisor是一个client/server系统,允许用户控制多个类unix系统的进程,摆脱rc.d脚本的不方便性.supervisor具有简单,集中化管理,搞笑,可扩展性,高兼容.
整套软件包含:supervisord(守护进程),supervisorctl(命令行工具),web server(一个web交互界面),XML-RPC 交互 安装
#centos
yum install epel-release
yum install supervisor
#ubuntu
apt isntall supervisor配置文件
查看/etc/supervisord.conf内容可以看到,配置文件被分为几个部分,对这个几个部分详细说明
unix_http_server
[unix_http_server]
file/var/run/supervisor/supervisor.sock ; (the path to the socket file)
;chmod0700 ; sockef 文件的权限 (默认是 0700,只有属主有读写执行权限)
;chownnobody:nogroup ; socket 文件属主和属组
;usernameuser ; 指定可以访问账号(d默认是没有)
;password123 ; 指定访问的密码(默认是没有)
这里file配置指定socket的路径,这个是作为客服端访问的一个入口,启动unix是表示这个是一个监听socket的程序,说明只能在本机访问,不能给其他网络客户端访问.这里客服端一般是supervisorctl命令.这个unix_http_server是默认启动的.
如果你需要使用账号密码访问需要给username和password指定账号和密码.
inet_http_server
;[inet_http_server] ; inet (TCP) server disabled by default
;port127.0.0.1:9001 ; 指定监听的ip和端口
;usernameuser ; 指定账号,默认是没有
;password123 ; 指定密码,默认是没有,这个账号密码最好添加
如果你想将控制入口暴露给网络中的其他客户端,可以去掉注释,可以将这个在防火钱上授权给集中控制客户端ip,做到集中控制程序.这个配置默认是没有启用的,有一定安全隐患在其中.
supervisord
[supervisord]
logfile/var/log/supervisor/supervisord.log ; 日志存放路径,默认是当前目录下supervisord.log
logfile_maxbytes50MB ; 日志文件的最大大小,默认是50MB
logfile_backups10 ; 日志保存的数量默认是10个
loglevelinfo ; 日志等级是info,默认 info; 其他包括: debug,warn,trace
pidfile/var/run/supervisord.pid ; pid文件路径
nodaemonfalse ; 是否运行为后端程序
minfds1024 ; 最小可用的文件描述限制是1024
minprocs200 ; 最小可用的进程数是200
;umask022 ; 进程文件umask
;userchrism ; 启动进程使用的用户名称
;identifiersupervisor ; supervisord标识是supervisor
;directory/tmp ; 在启动的时候需要切换的目录
;nocleanuptrue ; 不清理临时文件
;childlogdir/tmp ; (AUTO child log dir, default $TEMP)
;environmentKEYvalue ; 环境变量
;strip_ansifalse ; (strip ansi escape codes in logs; def. false)这个supervisord程序的配置信息.
supervisorctl
[supervisorctl]
serverurlunix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
;serverurlhttp://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;usernamechris ; should be same as http_username if set
;password123 ; should be same as http_password if set
;promptmysupervisor ; cmd line prompt (default supervisor)
;history_file~/.sc_history ; use readline history if available
这段配置在使用supervisorctl这个命令的时候,默认的参数,serverurl是前面unix_http_server或inet_http_server中指定的地址,username,prompt指定访问需要用到的账号密码(如果有指定的话),history_file指定使用命令的历史记录.
自己程序配置段
;[program:theprogramname]
;command/bin/cat ; the program (relative uses PATH, can take args)
;process_name%(program_name)s ; process_name expr (default %(program_name)s)
;numprocs1 ; number of processes copies to start (def 1)
;directory/tmp ; directory to cwd to before exec (def no cwd)
;umask022 ; umask for process (default None)
;priority999 ; the relative start priority (default 999)
;autostarttrue ; start at supervisord start (default: true)
;autorestarttrue ; retstart at unexpected quit (default: true)
;startsecs10 ; number of secs prog must stay running (def. 1)
;startretries3 ; max # of serial start failures (default 3)
;exitcodes0,2 ; expected exit codes for process (default 0,2)
;stopsignalQUIT ; signal used to kill process (default TERM)
;stopwaitsecs10 ; max num secs to wait b4 SIGKILL (default 10)
;userchrism ; setuid to this UNIX account to run the program
;redirect_stderrtrue ; redirect proc stderr to stdout (default false)
;stdout_logfile/a/path ; stdout log path, NONE for none; default AUTO
;stdout_logfile_maxbytes1MB ; max # logfile bytes b4 rotation (default 50MB)
;stdout_logfile_backups10 ; # of stdout logfile backups (default 10)
;stdout_capture_maxbytes1MB ; number of bytes in capturemode (default 0)
;stdout_events_enabledfalse ; emit events on stdout writes (default false)
;stderr_logfile/a/path ; stderr log path, NONE for none; default AUTO
;stderr_logfile_maxbytes1MB ; max # logfile bytes b4 rotation (default 50MB)
;stderr_logfile_backups10 ; # of stderr logfile backups (default 10)
;stderr_capture_maxbytes1MB ; number of bytes in capturemode (default 0)
;stderr_events_enabledfalse ; emit events on stderr writes (default false)
;environmentA1,B2 ; process environment additions (def no adds)
;serverurlAUTO ; override serverurl computation (childutils)
这个配置段是我们需要重点掌握的
command/bin/cat 程序的路径,可以携带参数process_name%(program_name)s ; 成熟名称,默认是program_name,上面的theprogramnamenumprocs1 ; 进程数量,一般是1directory/tmp ; 进程运行的目录umask022 ; umask for process (default None)priority999 ; the relative start priority (default 999)autostarttrue ; start at supervisord start (default: true)autorestarttrue ; retstart at unexpected quit (default: true)startsecs10 ; number of secs prog must stay running (def. 1)startretries3 ; max # of serial start failures (default 3)exitcodes0,2 ; expected exit codes for process (default 0,2)stopsignalQUIT ; signal used to kill process (default TERM)stopwaitsecs10 ; max num secs to wait b4 SIGKILL (default 10)userchrism ; setuid to this UNIX account to run the programredirect_stderrtrue ; 将错误输出重定向到标准输出中,这样就可以将stdout和stderr到同一个文件中stdout_logfile/a/path ; stdout log path, NONE for none; default AUTOstdout_logfile_maxbytes1MB ; max # logfile bytes b4 rotation (default 50MB)stdout_logfile_backups10 ; # of stdout logfile backups (default 10)stdout_capture_maxbytes1MB ; number of bytes in capturemode (default 0)stdout_events_enabledfalse ; emit events on stdout writes (default false)stderr_logfile/a/path ; stderr log path, NONE for none; default AUTOstderr_logfile_maxbytes1MB ; max # logfile bytes b4 rotation (default 50MB)stderr_logfile_backups10 ; # of stderr logfile backups (default 10)stderr_capture_maxbytes1MB ; number of bytes in capturemode (default 0)stderr_events_enabledfalse ; emit events on stderr writes (default false)environmentA1,B2 ; process environment additions (def no adds)serverurlAUTO ; override serverurl computation (childutils)
我使用的配置一般是
[program:example]
commandping -i 5 baidu.com
directory/example
process_name%(program_name)s
autostarttrue
autorestarttrue
startsecs3
startretries3
stopsignalTERM
exitcodes0,2
stopwaitsecs10
redirect_stderrtrue
stdout_logfile /tmp/example.log
stdout_logfile_maxbytes1000MB
stdout_logfile_backups5
include
[include]
files supervisord.d/*.ini
一般操作是将我们自己的程序的supervisor的文件文件一个一个单独放在这个files指定的目录中,可以更好的管理和操作.include会将files中的配置加入进来. supervisorctl
这个命令可以让我们控制supervisor所管理的守护进程.
1 添加,删除,修改配置
在之后的管理中,我们会向include中指定的files中添加,删除,修改守护进程的配置,每次操作完后都需要是的supervisor重新加载配置.
supervisorctl update
2 重启,停止,启动守护进程
#重启
supervisorctl restart processname
#重启所有程序
supervisorctl restart all
#停止
supervisorctl stop processname
#停止所有程序
supervisorctl stop all
#启动
supervisorctl start processname
#启动所有
supervisorctl start all