Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Sys::RunAlways(3)     User Contributed Perl Documentation    Sys::RunAlways(3)

NAME
       Sys::RunAlways -	make sure there	is always one invocation of a script
       active

SYNOPSIS
	use Sys::RunAlways;
	# code of which	there must always be on	instance running on system

	use Sys::RunAlways silent => 1;	 # don't tell the world	we're starting
	# code of which	there must always be on	instance running on system

DESCRIPTION
       Provide a simple	way to make sure the script from which this module is
       loaded, is always running on the	server.

VERSION
       This documentation describes version 0.06.

METHODS
       There are no methods.

THEORY OF OPERATION
       The functionality of this module	depends	on the availability of the
       DATA handle in the script from which this module	is called (more
       specifically: in	the "main" namespace).

       At INIT time, it	is checked whethere there is a DATA handle: if not, it
       exits with an error message on STDERR and an exit value of 2.

       If the DATA handle is available,	and it cannot be "flock"ed, it exits
       silently	with an	exit value of 0.

       If there	is a DATA handle, and it could be "flock"ed, a message is put
       on STDERR and execution continues without any further interference.
       Optionally, the message on STDERR can be	prevented by specifying	the
       "silent"	parameter in the "use" statement with a	true value, like:

	 use Sys::RunAlways silent => 1;

REQUIRED MODULES
	Fcntl (any)

CAVEATS
   symlinks
       Execution of scripts that are (sym)linked to another script, will all
       be seen as execution of the same	script,	even though the	error message
       will only show the specified script name.  This could be	considered a
       bug or a	feature.

   changing a running script
       If you change the script	while it is running, the script	will
       effectively lose	its lock on the	file.  Causing any subsequent run of
       the same	script to be successful, causing two instances of the same
       script to run at	the same time (which is	what you wanted	to prevent by
       using Sys::RunAlone in the first	place).	 Therefore, make sure that no
       instances of the	script are running (and	won't be started by cronjobs
       while making changes) if	you really want	to be 100% sure	that only one
       instance	of the script is running at the	same time.

ACKNOWLEDGEMENTS
       Inspired	by Randal Schwartz's mention of	using the DATA handle as a
       semaphore on the	London PM mailing list.

SEE ALSO
       Sys::RunAlone.

AUTHOR
	Elizabeth Mattijsen

       maintained by LNATION, <thisusedtobeanemail@gmail.com>

COPYRIGHT
       Copyright (c) 2005, 2006, 2012 Elizabeth	Mattijsen <liz@dijkmat.nl>.
       All rights reserved.  This program is free software; you	can
       redistribute it and/or modify it	under the same terms as	Perl itself.

perl v5.32.1			  2019-11-06		     Sys::RunAlways(3)

NAME | SYNOPSIS | DESCRIPTION | VERSION | METHODS | THEORY OF OPERATION | REQUIRED MODULES | CAVEATS | ACKNOWLEDGEMENTS | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Sys::RunAlways&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help