Как ограничить одновременные экземпляры одного и того же скрипта Ruby?

В Ruby 1.9.x, какой простой способ либо запретить повторный запуск моего Ruby-скрипта, либо дождаться завершения предыдущего экземпляра?**

Я надеюсь избежать беспорядочной блокировки файлов-или проверки таблиц процессов.

Есть ли что-то вроде глобального мьютекса или семафора уже в ядре? Я изучал нативный Mutex , но похоже, что он применим только к потокам внутри одного процесса Ruby, а не к разным процессам.

**Позже я мог бы добавить функцию тайм-аута, или ограничить N экземплярами, или использовать более одной глобальной блокировки, (по одной на системный-ресурс в масштабе всей системы, который должен иметь не более одного экземпляра).

10
задан Community 23 May 2017 в 11:45
поделиться