以下是一个使用Python的示例代码,用于捕获n个子进程的退出代码:
import subprocess
import os
def run_command_with_exit_code(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
exit_code = process.returncode
return exit_code
def capture_exit_codes(commands):
processes = []
exit_codes = []
# 启动子进程
for command in commands:
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
processes.append(process)
# 等待子进程完成,并记录退出代码
for process in processes:
process.wait()
exit_code = process.returncode
exit_codes.append(exit_code)
return exit_codes
# 示例:捕获3个子进程的退出代码
commands = [
["command1", "arg1", "arg2"],
["command2", "arg1", "arg2"],
["command3", "arg1", "arg2"]
]
exit_codes = capture_exit_codes(commands)
print(exit_codes)
在上面的示例中,capture_exit_codes
函数接受一个命令列表作为参数,然后启动相应数量的子进程来执行这些命令。每个子进程完成后,它的退出代码将被记录在exit_codes
列表中,并最终返回。
请注意,示例中的command1
,command2
和command3
应替换为您实际要执行的命令。