python – 启动和停止集群中的进程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 启动和停止集群中的进程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1843字,纯文字阅读大概需要3分钟。
内容图文
我正在编写运行一系列不同程序的软件(通过twisted’s扭曲);这是各种N种守护进程必须跨多台机器启动.如果我手动执行此操作,我将在所涉及的机器上运行诸如twistd foo_worker,twistd bar_worker等命令.
基本上会有一个机器列表,以及我需要它们运行的??守护程序.此外,我需要在需要时关闭它们.
如果我从头开始编程,我会编写一个“spawner”守护程序,该守护程序将在集群中的每台计算机上永久运行,并且可通过网络访问经过身份验证的管理员客户端:
>使用给定的命令行启动进程.返回一个句柄来管理它.
>杀死给定手柄的过程.
>(可选)在给定句柄的情况下查询cpu time等内容.
对上述方案进行编程将是相当简单的,但我无法想象这是一个新问题.当然有现成的解决方案正是这样做的吗?但我确实缺乏服务器管理经验,甚至不知道相关术语是什么.
在Linux集群上有哪些现有方法可以做到这一点,涉及哪些重要术语?我们欢迎Python特定的解决方案,但不是必需的.
另一种说法:给定LAN中的一堆机器,如何以编程方式将它们作为集群使用?
解决方法:
最熟悉和最通用的方法就是使用ssh.要自动化,您可以使用fabric.
要在所有主机上启动foo_worker:
$fab all_hosts start:foo_worker
要在特定主机列表上停止bar_worker:
$fab -H host1,host2 stop:bar_worker
这是一个示例fabfile.py:
from fabric.api import env, run, hide # pip install fabric
def all_hosts():
env.hosts = ['host1', 'host2', 'host3']
def start(daemon):
run("twistd --pid %s.pid %s" % (daemon, daemon))
def stop(daemon):
run("kill %s" % getpid(daemon))
def getpid(daemon):
with hide('stdout'):
return run("cat %s.pid" % daemon)
def ps(daemon):
"""Get process info for the `daemon`."""
run("ps --pid %s" % getpid(daemon))
为了简化特定主机上的进程管理,您可以为守护进程编写initd脚本(并运行service daemon_name start / stop / restart)或使用supervisord(并运行supervisorctl,例如,supervisorctl stop all).要控制“安装在哪里”并以集中方式推送配置,可以使用类似puppet的配置.
内容总结
以上是互联网集市为您收集整理的python – 启动和停止集群中的进程全部内容,希望文章能够帮你解决python – 启动和停止集群中的进程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。