2019-01-25_MSYS2(mintty)でwindowsコマンドが中止できない
このページで分かること
- minntyでwindowsコマンドをCtrl+cで中止できない現象の解決方法
先日msys2でvagrantを動かしていたときにCtrl+cでコマンド中止ができなく非常に困ったので調べました。
環境
- Windows10 pro v1803
- Vagrant 2.2.2
対応方法
原因としてはminttyは対話形式のコマンドをうまく扱えない仕様があるようです。winコマンドに関してはwinptyというコマンドでラップしてあげると正常動作になりますのでaliasに登録してあげましょう。
1 |
|
.bashrcに登録してあげるとラップを意識しせずに使えるので便利です。
備考
Ruby on Railsなども同じ現象に見舞われてrails s
でサーバー起動後、Ctrl+cで停止できなのでその場合はkillコマンドでプロセスを終了させるしかなさそうです。
ctrl+cでSIGINTがシェルに送られるはずですが、minttyと対話形式は相性が悪いようです。WSLからWindows側Vagrantが動かせると風の噂で聞き試しましたが上手くいかず……ぐぬぬ。
ubuntuでもネイティブなLinux環境が動くのは魅力ですが普段VagrantとDockerを使っているのでこの二つが動かないと厳しかったりします。DockerはWSLのUbuntu 16.4で動くようになったようなので後日試してみます!