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>
と正常に動作します。
回避策などあれば、ご教示いただけますでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/13 05:45
2019/08/13 05:57
2019/08/13 06:02
2019/08/13 06:04