通常通りINTが送信されていると思われる。
次のようなファイルを準備してchmodで実行権限を与えておく。
./signal_test.sh
#!/usr/bin/env bash
for i in $(seq 30); do
trap "echo $i; exit $i" $i
done
sleep 180
次にPythonで次のファイルを実行する。
from subprocess import run
try:
run('./signal_test.sh')
except KeyboardInterrupt:
import sys
sys.exit(2)
これを途中でCtrl-Cで止めると画面にはSIGINTを表す2が表示される。
^C2
あくまでこういうプログラム構成の場合に限るかもしれない。終了しないsubprocessは最終的にKILL送出で終了されるのかもしれない。