我正在尝试制作一个执行此操作的程序:
- 在线程中调用程序 1
- 在另一个线程中调用程序 2
- 如果程序 1 先结束,则终止程序 2,反之亦然。
我已经尝试了很长时间,这些是我目前的问题:
- 我无法导入 Thread 模块(不是线程!)。
- 函数还是类,这是个问题。
我已经知道如何使用 subprocess.Popen 调用进程以及如何使用命令行函数杀死它们。我也知道如何获得PID。
这是我的实际代码:
import threading, subprocess, shlex
class Prog1(threading.Thread):
def __init__(self, arg=''):
self.arg = arg
threading.Thread.__init__(self)
def run(self):
p = subprocess.Popen(shelx.split(self.arg))
global p.pid
subprocess.Popen(shelx.split("kill -9 " + q.pid))
class Prog2(threading.Thread):
def __init__(self, arg=''):
self.arg = arg
threading.Thread.__init__(self)
def run(self):
q = subprocess.Popen(shelx.split(self.arg))
global q.pid
subprocess.Popen(shelx.split("kill -9 " + p.pid))