Description

A gem that ensures only one instance of your main script is running. In short, there can be only one.

Installation

gem install highlander

Synopsis

  require 'highlander' # This should be the -first- thing in your code.
  # Your code here

  # Meanwhile, back on the command line...

  # First attempt, works. Assume it's running in the background.
  ruby your_script.rb

  # Second attempt while the first instance is still running, fails.
  ruby your_script.rb # => RuntimeError 

Notes

Simply requiring the highlander gem ensures that only one instance of that script cannot be started again. If you try to start it again it will raise a RuntimeError.

Known Issues

If you start your program, modify it while its running, and run it again then this library will not work.

Acknowledgements

Ara Howard for ideas.

License

Apache-2.0

(C) 2010-2020 Daniel J. Berger All Rights Reserved.

Warranty

This package is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.

Author

Daniel J. Berger