退出一个键按下多个python文件

时间:2015-11-05 01:55:16

标签: python bash

我有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个终端。

问题:

  1. 如何在按键时一次退出这5个脚本? 5个文件永远在while循环中。但我有键盘中断,除了那5个文件。

  2. 启动脚本后只有一个终端窗口。但是当我运行bash脚本时,我希望一次看到5个终端。

  3. 比一次运行5个脚本更好的解决方案? [使用pexpect,while循环从5台设备进行流数据记录]

  4. 环境:Ubuntu 14,python 2.7.6 非常感谢

1 个答案:

答案 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."