在子进程中运行和停止脚本

时间:2019-09-15 15:51:28

标签: python

我对子流程不熟悉,希望对以下问题有所帮助。 我有3个应用。可以说我正在使用如下命令运行它们:

python manage.py app1
python manage.py app2
python manage.py app2

我想制作一个主脚本来控制它们,例如run_app1stop_app1

一切都在Linux中运行。

对我的解释不力表示歉意。我有一个称为阅读障碍的问题,也称为阅读障碍。我有时很难写下我的想法。 感谢您的阅读或任何帮助

1 个答案:

答案 0 :(得分:0)

使用subprocess Python模块的第一步可能是这样的:

# Master
from multiprocessing.connection import Listener
from subprocess import Popen, PIPE
import socket
import sys

port = 10000
lstn = Listener(('localhost', int(port)), authkey=b'secret')
proc = Popen((sys.executable, 'worker.py', str(port)), stdout=PIPE, stderr=PIPE)

conn = lstn.accept()
conn.send([1, 'Brian', None])
print(proc.stdout.readline())
# Worker
from multiprocessing.connection import Client
import sys

port = int(sys.argv[1])
conn = Client(('localhost', port), authkey=b'secret')

while True:
    try:
        msg = conn.recv()
        print('Received: %s', str(msg))
        sys.stdout.flush()
    except EOFError:
        break

主进程初始化一个侦听器,然后打开工作进程。可以通过连接对象将消息发送给工作程序,然后stdoutstderr返回主进程。