rerun
rerun copied to clipboard
Crashing in Windows 10 with Ruby 3.2.1
Running a basic Sinatra app with rerun app.rb
and then modifying the file produces the following error and the process crashes.
...
15:16:54 [rerun] Watching . for **/*.{rb,js,coffee,css,scss,sass,erb,html,haml,ru,yml,slim,md,feature,c,h} with Windows adapter
15:17:09 [rerun] Change detected: 1 modified: app.rb
15:17:09 [rerun] Sending signal TERM to 1304
15:17:09 [rerun] Signal TERM failed: Errno::EINVAL: Invalid argument
15:17:09 [rerun] Sending signal INT to 1304
I tried it both before/after installing the wdm gem, same result. Tried it both in standard Windows command prompt and Git Bash command prompt, same result.
After some searching I randomly found the following solution: https://stackoverflow.com/a/76500835/67675
After adding gem "puma"
to the Gemfile and running bundle install
I was about to run rerun app.rb
and modify the file without it crashing. Only problem is I couldn't Ctrl-C the process and have to kill it manually.
Update: turns out that now it crashes again. So perhaps the "solution" above was a false positive.
Another update: worked again, then didn't. Definite Heisenbug.
I was pleasantly surprised to find out that nodemon
works with Ruby programs!
Running nodemon app.rb
runs ruby app.rb
under the hood, and it detects when the file is edited and restarts the server without crashing -- and I can also Ctrl-C to quit.
Hopefully this helps another Windows Ruby user (albeit by suggesting an alternative to rerun
-- apologies to @alexch).