我如何使用单个shell实例在Python中运行多个命令? (以避免shell启动时间)

问题描述 投票:0回答:1

我想创建一个bash(或zsh,没关系。)服务器,该服务器接受命令,运行它们并返回结果(return codestdoutstderr)。我的目的是避免为要在bash脚本中运行的每个bash命令启动新的Python实例,因为bash点文件需要相当长的加载时间。符合以下精神:

bash = bash_instance() # pay the startup penalty ONCE
bash.run('echo hi') # Just run the command without the startup time
...
bash.run('curl ipinfo.io')
return_code, stdout, stderr = bash.run('cat file.txt')

一种用于外壳的Remote Method Call

python redis rabbitmq zeromq rpc
1个回答
0
投票

您可以使用multiprocessing

from multiprocessing import Pool

zsh = zsh_instance()

with Pool(5) as p:
    print(p.map(zsh.run, [
        ('some-command',),
        ('some-other-command',)
    ]))
© www.soinside.com 2019 - 2024. All rights reserved.