一、关于supervisor的supervisord和supervisorctl
之前写过几篇supervisor的文章,自己也尝试使用了多次,今天在一台服务器上执行:supervisorctl发现提示unix:///tmp/supervisor.sock no such file
[dev@dev ~]$ sudo supervisorctl
unix:///tmp/supervisor.sock no such file
supervisor>
这个错误显示根本没有unix套接字这个文件,可能是进程没有启动,也可能是进程启动了但是没有打开套接字,但默认是开启了的,这说明启动的supervisor很可能未使用默认的配置文件/etc/supervisord.conf。但ps查看supervisord的进程发现启动进程的命令中也未用-c指定配置文件,最后发现supervisord使用配置文件的原则是优先使用安装目录下的supervisord.conf,如果没有就找安装目录下etc目录中的supervisord.conf,如果再没有就会使用默认的/etc/supervisord.conf,即寻找顺序如下:
$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf
感觉supervisord这个东西如果在启动命令里没有使用-c写出.conf路径,同时也不知道supervisord的安装目录的话,还真不好找到具体的安装目录(通过/proc/$pid也未查找到,当然find之类的除外)。最后如果supervisord没有安装在默认的目录里的话,使用supervisorctl就要么到安装目录下去执行此命令,也可以在supervisorctl后添加-c指定supervisord.conf的路径。
二、 supervisor进程管理中的常用命令
supervisor是一个非常小巧的进程监控服务,安装后第一步启动supervisord服务,启动这个服务后就只需要使用supervisorctl启动supervisor的命令行窗口。supervisor分为两部分,一部分是服务端部分,即supervisord服务。启动:supervisord -c /etc/supervisord.conf ,另一部分就是控制窗口supervisorctl部分。直接执行:supervisorctl 即可。
这里注意/etc/supervisord.conf 是默认的配置文件路径,执行supervisord 时默认加载这个配置文件,如果启动时执行加载了其它路径的配置文件,例如:
/usr/bin/supervisord -c /home/username/supervisor/supervisord.conf
则在执行supervisortctl时也要添加添加配置文件路径,如:supervisorctl -c /home/username/supervisor/supervisord.conf,否则会报错(因为它会去寻找/etc/supervisord.conf,里面的配置可能不一样,例如配置的SEVERurl,如果serverurl的路径不一致时就会报错)
[supervisorctl]
serverurl=/var/tmp/supervisor.sock ; use a unix:// URL for a unix socket
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris ; should be same as http_username if set
;password=123 ; should be same as http_password if set
;prompt=mysupervisor ; cmd line prompt (default "supervisor")
会报错:
[root@kermit ~]# supervisorctl
error: <type 'exceptions.ValueError'>, Unknown protocol for serverurl /var/tmp/supervisor.sock: file: /usr/local/python27/lib/python2.7/site-packages/supervisor-3.3.0-py2.7.egg/supervisor/xmlrpc.py line: 481
supervisor>
进入之后可通过help命令查看supervisorctl下可执行的所有命令,如下:这些命令也可以直接在linux命令行下执行,使用supervisorctl 命令 参数。
supervisor> help
default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
常用的一些命令如下:
标签:supervisor,supervisord,配置文件,supervisorctl,etc,conf From: https://blog.csdn.net/weixin_47792780/article/details/139079025update #更新新的配置到supervisord,如果配置文件有更改需要增加新的进程入supervisord可使用。 reload #重新启动配置中的所有程序 start program_name #启动某个进程 stop program_name #停止某个进程 restart program_name #重启某个进程 stop all #停止全部进程 #注意: #1,显示用stop停止掉的进程,用reload或者update都不会自动重启。 #2,上面的命令可以使用supervisorctl进入后在命令窗口下执行,也可直接在linux命令行使用supervisorctl+命令参数执行。