V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
among
V2EX  ›  Python

Python 创建新进程,停止、重启 用什么模块比较合适

  •  
  •   among · 2021-05-29 09:07:19 +08:00 · 2258 次点击
    这是一个创建于 1061 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有这样一搞需求,创建一个新进程,类似 flask 的, 需要一直开着。
    后续还需要修改一些配置项,需要停止、重启 flask 。最好还能够和这个进程通讯。

    用什么模块比较合适,用 celery,celery 的异步处理,我也不需要异步。而且进程必须启动了就一直在。

    并且后续还有跨机器的需求,在另一个机器上启动对应的进程。

    这块,大家有什么思路吗,谢谢。
    第 1 条附言  ·  2021-05-29 09:48:46 +08:00
    此外,这些任务也不是固定的,会按照不同的参数来启动,可能是 3 个,也可能是 5 个。
    在前端会有一些创建、停止、重启的请求。
    第 2 条附言  ·  2021-05-29 14:41:54 +08:00
    k8s 是可以支持。

    但是项目还处于 demo 阶段,现在用还太重。


    若干暂时不考虑多机,就在一个机器上。

    是不是有更简单的选择。
    11 条回复    2021-05-30 03:07:55 +08:00
    pabupa
        1
    pabupa  
       2021-05-29 09:23:56 +08:00
    ch2
        2
    ch2  
       2021-05-29 09:37:02 +08:00
    把进程注册为 systemctl 服务,os.system("systemctl restart xxx")
    ClericPy
        3
    ClericPy  
       2021-05-29 09:38:08 +08:00
    supervisord 有 RPC 接口, 远程操作内置库就可以
    当年看到过 circus, 不过没用习惯, 其他的流行起来的不多
    among
        4
    among  
    OP
       2021-05-29 09:48:25 +08:00
    谢谢
    @ClericPy,此外,这些任务也不是固定的,会按照不同的参数来启动,可能是 3 个,也可能是 5 个。
    在前端会有一些创建、停止、重启的请求。
    ClericPy
        5
    ClericPy  
       2021-05-29 09:52:43 +08:00
    @among 我司目前用 supervisor + RPC 操作的创建机器开关机器. 虽然感觉走 systemd 更优雅一点, 不确定后者是不是有远程接口

    supervisor 有 group 概念可以一次起多个关多个. 不同参数要传给 supervisor 吗, 还带进程通讯, 感觉整复杂了, 也没看明白到底是做什么
    among
        6
    among  
    OP
       2021-05-29 09:55:02 +08:00
    @ClericPy
    谢谢答复。

    原始需求是做一个类似 mock 服务的一个平台。

    准备用 flask 来实现,根据前端用户的配置,生成配置文件。然后根据配置文件,启动不同的 flask 或普通 tcp 的进程。

    这里面会有,动态创建,选择机器,重启,的任务在里面。
    ClericPy
        7
    ClericPy  
       2021-05-29 10:06:46 +08:00
    感觉一开始最好直接问 mock 服务平台相关的...

    没做过类似的, 如果是我可能会考虑 consul 服务注册发现或者直接走单个 mock 服务加 nginx 帮我反代成多个. 帮不了你了
    dayeye2006199
        8
    dayeye2006199  
       2021-05-29 12:11:47 +08:00
    多机,还需要灵活可配置,上 kubernetes 吧。进程做进容器里,叫 k8s api 启动关闭容器资源。

    要求不高的话,上一个比较轻量的 k3s 就行
    no1xsyzy
        9
    no1xsyzy  
       2021-05-29 12:57:34 +08:00
    碎片化的一些信息:
    k8s 可以对容器进行编配
    traefik 可以根据 k8s 的状态动态生成转发规则
    (虽然我都没用过
    qile1
        10
    qile1  
       2021-05-29 23:40:18 +08:00 via Android
    我是 window 系统类似需求,我想两个程序互相控制,简单参数传递,比如重启动!一直没有好办法,之前研究就是使用 sick 通讯或者 rpc 通讯,window 有窗口句柄传参,python 写的程序可以发送但是没接收成功。其实打开关闭程序好弄 重启动这个不好弄。
    pb 程序挺好,两个程序直接可以直接传参。
    另外多进程可以用 q 来 put 和 get,问题是我需求是两个 python 打包微 exe 程序间通讯
    no1xsyzy
        11
    no1xsyzy  
       2021-05-30 03:07:55 +08:00
    demo 阶段一般不把这种运维设施算进去吧
    如果你确实要把自动编配也 demo 进去的话,还是 supervisord 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1052 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:12 · PVG 06:12 · LAX 15:12 · JFK 18:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.