如何使用主管控制和监视远程主机中的进程?
How to control and monitor processes in remote host with supervisor?
Supervisor
文件提到 remote command line
。
Supervisor provides you with one place to start, stop, and monitor
your processes. Processes can be controlled individually or in groups.
You can configure Supervisor to provide a local or remote command line
and web interface.
这是否意味着 supervisor
可以控制和监视远程主机上的进程 运行ning?
例如,
- 有三台服务器
A
、B
和C
。
- 服务器
A
运行主管。
- 主管 运行 在
B
和 C
中处理。
- 主管可以监视和控制(停止和启动)
B
和 C
中的进程。
如果可能的话,你能给我一个 Supervisor 配置示例吗?
引用的意思不是 100% 清楚。恕我直言,这意味着控制可以远程或本地进行。
总之,发现主管文档的这一部分非常有帮助。
http://supervisord.org/plugins.html
它提到了可以帮助您从单一来源控制多台机器上的主管的工具。
你不能只使用 supervisor 来管理远程主机的进程。
但是你可以在每台主机上都安装supervisor,然后在控制主机上使用supervisor XML-RPC API管理它们,这是官方的。
很多插件都是这样实现的
使用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")
Supervisor
文件提到 remote command line
。
Supervisor provides you with one place to start, stop, and monitor your processes. Processes can be controlled individually or in groups. You can configure Supervisor to provide a local or remote command line and web interface.
这是否意味着 supervisor
可以控制和监视远程主机上的进程 运行ning?
例如,
- 有三台服务器
A
、B
和C
。 - 服务器
A
运行主管。 - 主管 运行 在
B
和C
中处理。 - 主管可以监视和控制(停止和启动)
B
和C
中的进程。
如果可能的话,你能给我一个 Supervisor 配置示例吗?
引用的意思不是 100% 清楚。恕我直言,这意味着控制可以远程或本地进行。
总之,发现主管文档的这一部分非常有帮助。 http://supervisord.org/plugins.html
它提到了可以帮助您从单一来源控制多台机器上的主管的工具。
你不能只使用 supervisor 来管理远程主机的进程。
但是你可以在每台主机上都安装supervisor,然后在控制主机上使用supervisor XML-RPC API管理它们,这是官方的。
很多插件都是这样实现的
使用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")