There is an ongoing outage on the primary CPAN mirror. It is possible to work around the issue by using MetaCPAN as a mirror.

NAME

App::Base::Script::OnlyOne - do not allow more than one instance running

SYNOPSIS

use Moose;
extends 'App::Base::Script';
with 'App::Base::Script::OnlyOne';

DESCRIPTION

With this role your script will refuse to start if another copy of the script is running already (or if it is deadlocked or entered an infinite loop because of programming error). After start it tries to lock pid file, and if this is not possible, it dies.