GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SYS::RUNALWAYS (3)

.ds Aq ’

NAME

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

CONTENTS

SYNOPSIS



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

 use Sys::RunAlways silent => 1;  # dont tell the world were 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.05.

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 flocked, it exits silently with an exit value of 0.

If there is a DATA handle, and it could be flocked, 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



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.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 SYS::RUNALWAYS (3) 2012-04-01

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.