我有以下代码:
port_temp = 8080
process_getpodsnamesipport = subprocess.call(['bash','getpodsnamesipport.sh', port_temp],preexec_fn=os.setsid)
我想做类似的事情:
os.killpg(os.getpgid(process_getpodsnamesipport.pid), signal.SIGKILL)
杀死进程,但是只有subprocess.Popen才有可能。
os.killpg(os.getpgid(process_getpodsnamesipport.pid), signal.SIGKILL)
AttributeError: 'int' object has no attribute 'pid'
我会使用Popen并尝试如下操作:
import subprocess
import os
import signal
port_temp = 8080
cmd = "bash getpodsnamesipport.sh {}".format(port_temp)
process_getpodsnamesipport = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
std_out, std_err = process_getpodsnamesipport.communicate()
print(process_getpodsnamesipport.pid)
os.killpg(process_getpodsnamesipport.pid, signal.SIGKILL)