読者です 読者をやめる 読者になる 読者になる

git logをctrl+cで終了すると、それ以降のコマンドが表示されないの続き

f:id:orangeclover:20170301214430p:plain

Conemu+Gitのbashでgit logをctrl+cで終了すると、それ以降のコマンドが表示されないの続き。
疑問は残ったまま。

発端

そうね、Linuxだとqで止めてるんだけど、Windowsだと、たまにCtrl+cに指が動いてしまう。

これ書いていて気づいた。 Git Bashって、Gitインストール先\bin\bash.exeじゃなくて、Gitインストール先\git-bash.exeなのね。

mintty と書いたのは、Git Bashで、Gitインストール先\bin\bash.exeのこと。 なので、改めて確認。

git-bash.exeとbash.exeでCtrl+cで止める

スクロール待ちになっている状態のgit logと普通に起動したlessに対して、
Ctrl+cで止める。

ターミナル git log less
git-bash 終了して、それ以降のコマンドも正常に表示される 終了しない
bash 終了して、それ以降のコマンドは表示されない 終了しない

bashだと発生する。conemu関係なかった。

kill -INTで止めるとどうなるか?

スクロール待ちになってる状態のgit logと、git logから起動したless対して
kill -INTで止める。

ターミナル git log less
git-bash 終了して、それ以降のコマンドも正常に表示される 終了しない
bash 終了して、それ以降のコマンドも正常に表示される 終了しない

送信するシグナルの確認

git-bashでもbashでも、stty -aの実行結果はintr = ^C;なので同じはず。

疑問

killで指定したプロセスに対してSIGINTだと問題ないということは、
bashCtrl+cでプロセスグループに属する全プロセスに対して送信するとダメのか?
そこに、Git bashbashの違いがあるのか?
分からん。だれか教えて。