From: yamataka@...08.itscom.net Date: 2019-08-08T20:24:23+09:00 Subject: [ruby-list:50805] [質問] msys2 mingw64 ruby Signal.trap(:INT) が動作しない? 山口と申します。 Windows msys2 mingw64 yama@JPC00183513 ~/b/p/sample> uname -a MINGW64_NT-10.0-17763 JPC00183513 3.0.7-338.x86_64 2019-05-27 06:58 UTC x86_64 Msys yama@JPC00183513 ~/b/p/sample> ruby --version ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32] の環境で、 yama@JPC00183513 ~/b/p/sample> cat signal.rb # coding: utf-8 $stdout.sync = true p Signal.list # EXIT mignw fail # INT w pass mingw fail # QUIT mingw unsupported signal `SIGQUIT' (ArgumentError) # ILL mingw can't trap reserved signal: SIGILL (ArgumentError) # ABRT mingw fail # FPE mingw can't trap reserved signal: SIGFPE (ArgumentError) # KILL mingw Invalid argument - SIGKILL (Errno::EINVAL) # TERM mingw fail Signal.trap(:INT) { puts "まわって" puts "まわって" puts "まわって" exit } while true puts "とんで" sleep 3 end を実行し、C-c すると、 yama@JPC00183513 ~/b/p/sample> ruby signal.rb {"EXIT"=>0, "INT"=>2, "ILL"=>4, "ABRT"=>22, "FPE"=>8, "KILL"=>9, "SEGV"=>11, "TERM"=>15} とんで とんで yama@JPC00183513 ~/b/p/sample> と、Signal.trap(:INT) のブロックが実行されない症状に遭遇しています 一方 Windows コマンドプロンプトで、rubyのバージョンが少し異なりますが、 c:\yama\bin\platform\sample>ruby --version ruby 2.5.5p157 (2019-03-15 revision 67260) [x64-mingw32] c:\yama\bin\platform\sample>ruby signal.rb {"EXIT"=>0, "INT"=>2, "ILL"=>4, "ABRT"=>22, "FPE"=>8, "KILL"=>9, "SEGV"=>11, "TERM"=>15} とんで とんで とんで まわって まわって まわって c:\yama\bin\platform\sample> と正常に動作します。 回避策などあれば、ご教示いただけますでしょうか?