alexch / rerun

Restarts an app when the filesystem changes. Uses growl and FSEventStream if on OS X.
Other
984 stars 80 forks source link

Crashing in Windows 10 with Ruby 3.2.1 #144

Open Youdaman opened 1 year ago

Youdaman commented 1 year ago

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.

Youdaman commented 1 year ago

Update: turns out that now it crashes again. So perhaps the "solution" above was a false positive.

Youdaman commented 1 year ago

Another update: worked again, then didn't. Definite Heisenbug.

Youdaman commented 1 year ago

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).