我有5個python腳本,其中所有腳本都有主要功能。代碼是一個記錄從5 devices.basically流數據,代碼是這樣的[未滿代碼這裏]:退出一個按鍵的多個python文件
#!/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的,而循環數據流數據從5個器件登錄]
環境:Ubuntu的14,蟒2.7.6 非常感謝
除非您告訴我們更多關於這些腳本正在做什麼的內容,否則我們無法告訴您是否存在「更好的解決方案」。 – John1024
_「我怎樣才能一次性退出這5個腳本__用於按鍵__?_」一鍵按鍵「對您而言意味着什麼?要用bash或python做某事,通常需要編寫一個命令;一個按鍵是不夠的。交互式地,可以創建快捷方式,但完成方式通常取決於您所處的環境。 – John1024
除非知道bash,否則無法在bash shell腳本中運行它們。從一個額外的Python程序運行它們,它必須首先捕獲一個按鍵,使用subprocess.call https://pymotw.com/2/subprocess/index.html#module-subprocess和psutil殺死新程序以及所有它是兒童,或運行每個程序作爲一個多處理過程,然後可能會被殺死https://pymotw.com/2/multiprocessing/basics.html#terminating-processes –