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
kidlfy
V2EX  ›  Python

一个 py 文件怎么同时启动两个服务?用命令行

  •  
  •   kidlfy · 2018 年 12 月 4 日 · 3236 次点击
    这是一个创建于 2598 天前的主题,其中的信息可能已经有所发展或是发生改变。

    str_one=('python app.py --port=8099') str_two=('python app.py --port=8098') os.system(str_one) os.system(str_two)

    这样写只会启动一个。是因为只 fork 了一个子进程 然后等待它结束 再往下运行 有什么办法同时运行两句命令启动两个服务呢

    谢谢

    12 条回复    2018-12-04 21:39:06 +08:00
    zh826256645
        1
    zh826256645  
       2018 年 12 月 4 日
    用 nohup 试试?或者 Supervisor
    d0m2o08
        2
    d0m2o08  
       2018 年 12 月 4 日
    搜 python threading
    clino
        3
    clino  
       2018 年 12 月 4 日
    此时不能用 os.system ,因为退出才返回
    可以用 os.popen 试试
    wwqgtxx
        4
    wwqgtxx  
       2018 年 12 月 4 日 via iPhone
    popen 呀,另外不要用楼上说的 os.popen,那个已经被标记为过时的了,平时用 popen 模块
    xpresslink
        5
    xpresslink  
       2018 年 12 月 4 日
    要开多进程才行

    import subprocess
    subprocess.Popen(str_one)
    subprocess.Popen(str_two)
    kidlfy
        6
    kidlfy  
    OP
       2018 年 12 月 4 日
    @xpresslink 它会报 没有这个文件 的错误 但是 os.popen 就可以直接执行
    www5070504
        7
    www5070504  
       2018 年 12 月 4 日
    @kidlfy 试试用绝对路径 另外参数加上 shell=True
    kidlfy
        8
    kidlfy  
    OP
       2018 年 12 月 4 日
    @www5070504 对, 可以了 谢谢 另外 你知道怎么关闭文件的时候 kill 掉所有的子进程吗 只能手动吗
    www5070504
        9
    www5070504  
       2018 年 12 月 4 日
    @kidlfy 注册信号处理函数 在 signal 库里 可以调用子进程对象的 kill 方法
    www5070504
        10
    www5070504  
       2018 年 12 月 4 日
    @kidlfy 或者记录子进程的 pid 用 os.kill() 前一种方法比较好一些但是说实话业务写完一般都得手动退出 多进程很容易出现不能完全退出的情况...
    xmoiduts
        11
    xmoiduts  
       2018 年 12 月 4 日 via Android
    能用 & 吗
    python ………… &
    xpresslink
        12
    xpresslink  
       2018 年 12 月 4 日
    @kidlfy 你加个绝对路径还不会么?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2677 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    ♥ Do have faith in what you're doing.