xenial (1) rerun.1.gz

Provided by: rerun_0.10.0-1_all bug

NAME

       rerun - launches commands and restarts them on filesystem changes

USAGE

       rerun [options] [--] cmd

EXAMPLES

       For example, if you´re running a Sinatra app whose main file is app.rb:

               rerun ruby app.rb

       If  the  first  part  of  the  command is a .rb filename, then ruby is optional, so the above can also be
       accomplished like this:

               rerun app.rb

       Rails doesn´t automatically notice all config file changes, so you can  force  it  to  restart  when  you
       change a config file like this:

               rerun --dir config rails s

       Or if you´re using Thin to run a Rack app that´s configured in config.ru but you want it on port 4000 and
       in debug mode, and only want to watch the app and web subdirectories:

               rerun --dir app,web -- thin start --debug --port=4000 -R config.ru

       The -- is to separate rerun options from cmd options. You can also use a quoted string for  the  command,
       e.g.

               rerun --dir app "thin start --debug --port=4000 -R config.ru"

       Rackup can also be used to launch a Rack server, so let´s try that:

               rerun -- rackup --port 4000 config.ru

       Want to mimic autotest https://github.com/grosser/autotest? Try

               rerun -x rake

       or

               rerun -cx rspec

       And  if  you´re  using  Spork https://github.com/sporkrb/spork with Rails, you need to restart your spork
       server https://github.com/sporkrb/spork/issues/201 whenever certain Rails environment  files  change,  so
       why not put this in your Rakefile...

           desc "run spork (via rerun)"
           task :spork do
             sh "rerun --pattern ´{Gemfile,Gemfile.lock,spec/spec_helper.rb,.rspec,spec/factories/**,config/environment.rb,config/environments/test.rb,config/initializers/*.rb,lib/**/*.rb}´ -- spork"
           end

       and start using rake spork to launch your spork server?

       (If you´re using Guard instead of Rerun, check out guard-spork https://github.com/guard/guard-spork for a
       similar solution.)

       How about regenerating your HTML files after every change to  your  Erector  http://erector.rubyforge.org
       widgets?

               rerun -x erector --to-html my_site.rb

       Use  Heroku  Cedar?  rerun  is  now  compatible with foreman. Run all your Procfile processes locally and
       restart them all when necessary.

               rerun foreman start

OPTIONS

       -d, --dir
              directory (or directories) to watch (default = "."). Separate multiple paths with ´,´  and/or  use
              multiple -d options.

       -p, --pattern
              glob   to   match   inside   directory.   This   uses   the   Ruby   Dir   glob   style   --   see
              http://www.ruby-doc.org/core/classes/Dir.html#M002322 for details.

              By default it watches files ending in: rb,js,css,coffee,scss,sass,erb,html,haml,ru,slim,md. On top
              of this, it also ignores dotfiles, .tmp files, and some other files and directories (like .git and
              log). Run rerun --help to see the actual list.

       -i, --ignore pattern
              file glob to ignore (can be set many times). To ignore a directory,  you  must  append  ´/*´  e.g.
              --ignore ´coverage/*´.

              On top of --pattern and --ignore, we ignore any changes to files and dirs starting with a dot.

       -s, --signal
              use  specified signal (instead of the default SIGTERM) to terminate the previous process. This may
              be useful for forcing the respective process to terminate as quickly as possible.  (--signal  KILL
              is the equivalent of kill -9)

       -h, --hup
              when  restarting,  send  a  SIGHUP signal instead of trying to terminate the process and run a new
              one. This assumes the process is capable of restarting by itself (as e.g. unicorn is).

       -c, --clear
              clear the screen before each run

       -x, --exit
              expect the program to exit. With this option, rerun checks the return  value;  without  it,  rerun
              checks that the launched process is still running.

       -b, --background
              disable on-the-fly commands, allowing the process to be backgrounded

       -n, --name
              set the app name (for display)

       Also --version and --help, naturally.

ON-THE-FLY COMMANDS

       While the app is (re)running, you can make things happen by pressing keys:

       •   r -- restart (as if a file had changed)

       •   c -- clear the screen

       •   x or q -- exit (just like control-C)

       •   p -- pause/unpause filesystem watching

       If  you´re  backgrounding or using Pry or a debugger, you might not want these keys to be trapped, so use
       the --background option.

SIGNALS

       The current algorithm for killing the process is:

       •   send SIGTERM http://en.wikipedia.org/wiki/SIGTERM (or the value of the --signal option)

       •   if that doesn´t work after 4 seconds, send SIGINT (aka control-C)

       •   if that doesn´t work after 2 more seconds, send SIGKILL (aka kill -9)

       This seems like the most gentle and unixy way of doing things, but it does  mean  that  if  your  program
       ignores SIGTERM, it takes an extra 4 to 6 seconds to restart.

                                                   August 2015                                          RERUN(1)