回答編集履歴

1

コード追記

2020/05/29 07:32

投稿

x98000
x98000

スコア1096

test CHANGED
@@ -1,3 +1,33 @@
1
1
  `subprocess.check_output()`は外部コマンドが終了するまで待機しますから、今のままでは`time.sleep()`にたどり着きません。
2
2
 
3
3
  一定時間待つのであれば、`subprocess.check_output()`にtimeoutパラメータを設定し、タイムアウトが発生した場合は`Exception TimeoutExpired`で捕捉できるので、そこで`continue`してはどうでしょうか。
4
+
5
+ ### 追記
6
+
7
+ 元コードが抜粋なので検証できませんが、
8
+
9
+ ```python
10
+
11
+ while true:
12
+
13
+ try:
14
+
15
+ #外部コマンド実行
16
+
17
+ cmd = ("外部コマンド名")
18
+
19
+
20
+
21
+ #標準エラー出力も含めた実行結果
22
+
23
+ runcmd = subprocess.check_output(cmd.split(),stderr=subprocess.STDOUT, timeout=5)
24
+
25
+ break
26
+
27
+ except subprocess.TimeoutExpired:
28
+
29
+ print("Retry due to timeout!")
30
+
31
+ ```
32
+
33
+ こんなイメージです。