[英]Keyboard interrupt bash and python script running in parallel
我必須同時執行兩個操作,一個通過 bash 腳本,另一個通過 python 腳本。 到目前為止,我發現的最簡單的方法是創建一個父 bash 腳本來並行執行這兩個腳本,例如:
#!/bin/bash
bash process1.sh &
python3 process2.py &
我希望能夠使用鍵盤中斷 Ctrl+C 同時中斷兩個進程。 我嘗試添加
trap 'kill %1; kill %2' SIGINT
但是 python 腳本沒有按我的意願關閉。 在 python 腳本中,有一個循環應該在鍵盤中斷后停止並在此之后執行更多操作,如下所示
try:
# do something
except KeyboardInterrupt:
# Keyboard interrupt (Ctrl + C) detected
pass
# then do some final operations
但是使用kill
不會將鍵盤中斷傳播到 python 腳本,它只是按原樣終止程序。
有沒有辦法不殺死子 python 腳本,而是將 SIGINT 傳播給它?
嘗試這個:
trap 'kill -INT %1 %2' INT
kill %2
向 Python 進程發送SIGTERM (默認信號),而不是 SIGINT。 您想在陷阱代碼中使用kill -INT
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.