Supervisor
文件提及remote command line
。
主管为您提供一个启动,停止和监控的地方 你的过程。流程可以单独控制,也可以成组控制。 您可以将Supervisor配置为提供本地或远程命令行 和网络界面。
这是否意味着supervisor
可以控制和监控远程主机上运行的进程?
例如,
A
,B
和C
。A
运行主管。B
和C
。B
和C
中的流程。如果可能的话,你能否为此给我一个Supervisor配置示例?
答案 0 :(得分:1)
答案 1 :(得分:0)
报价的含义并非100%明确。恕我直言,这意味着控制可以远程或本地发生。
无论如何,发现这部分主管文档非常有帮助。 http://supervisord.org/plugins.html
它提到的工具可以帮助您从单一来源控制多台机器上的主管。
答案 2 :(得分:0)
使用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")