Supervisor文档提到了remote command line。
主管为您提供了一个开始、停止和监视流程的地方。过程可以单独控制,也可以分组控制。您可以将Supervisor配置为提供本地或远程命令行和web接口。
这是否意味着supervisor可以控制和监视运行在远程主机上的进程?
例如,
A、B和C。A运行监控器。B和C中运行进程。B和C中的进程。如果可能的话,你能给我一个主管配置的例子吗?
发布于 2018-06-29 07:29:50
您不能只使用主管来管理远程主机的进程。
但是您可以在每个主机上安装监控器,并使用正式的监控程序XML-RPC API在控制主机上管理它们。
许多插件都是这样实现的。
发布于 2017-01-13 21:57:27
这句话的意思并不是百分之百清楚。这意味着控制可以发生在远程或本地。
总之,发现这部分的主管文件非常有用。http://supervisord.org/plugins.html
它提到了一些工具,这些工具可以帮助您从单个来源控制多台机器上的监控器。
发布于 2019-11-24 11:45:58
使用xml-rpc
import socket
from http.client import HTTPConnection
from xmlrpc import client
class UnixStreamHTTPConnection(HTTPConnection):
def connect(self):
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self.sock.connect(self.host)
class UnixStreamTransport(client.Transport, object):
def __init__(self, socket_path):
self.socket_path = socket_path
super(UnixStreamTransport, self).__init__()
def make_connection(self, host):
return UnixStreamHTTPConnection(self.socket_path)
server = client.ServerProxy('http://127.0.0.1',transport=UnixStreamTransport("/path/to/supervisor.sock"))
print(proxy.supervisor.getState())
server.supervisor.stopProcess("test")
server.supervisor.startProcess("test")https://stackoverflow.com/questions/38768683
复制相似问题