我有5个python脚本,其中所有脚本都有主要功能。代码用于来自5个设备的记录流数据。基本上,代码是这样的[这里不是完整代码]:
#!/urs/bin/env python
import time
import pexpect
log = open('log.txt', 'w+')
tool = pexpect.spawn(connection)
start = time.time()
while True:
try:
tool.expect('Notification handle = .*? \r', timeout=300)
a = tool.after
elapsed = time.time() - start
output = str(elapsed) + " " + a
log.write(output)
except KeyboardInterrupt:
tool.close()
log.close()
pass
问题: 我有一个脚本,使用下面的bash脚本一次运行5个脚本:
#!/usr/bin/env bash
python a.py &
python b.py &
启动脚本后只有一个终端窗口。但是当我运行bash脚本时,我希望一次看到5个终端。
问题:
如何在按键时一次退出这5个脚本? 5个文件永远在while循环中。但我有键盘中断,除了那5个文件。
启动脚本后只有一个终端窗口。但是当我运行bash脚本时,我希望一次看到5个终端。
比一次运行5个脚本更好的解决方案? [使用pexpect,while循环从5台设备进行流数据记录]
环境:Ubuntu 14,python 2.7.6 非常感谢
答案 0 :(得分:1)
您可以使用信号处理程序并等待
#! /bin/bash
trap 'kill %1 %2 %3 %4 %5' INT
python a.py&
python b.py&
python c.py&
python d.py&
python e.py&
echo "Waiting..."
wait
echo "Done."