NAME
Ubic::Service::InitScriptWrapper - represent any /etc/init.d/ script as ubic service
VERSION
version 0.02
SYNOPSIS
# in /etc/ubic/service/my-nginx
use Ubic::Service::InitScriptWrapper;
Ubic::Service::InitScriptWrapper->new('nginx'); # map /etc/init.d/nginx to 'my-nginx' ubic service
DESCRIPTION
This module lets you turn any LSB-compliant init script into ubic service.
Note that this is completely different from Ubic::Run. Ubic::Run
lets you turn ubic service to init script. This module does the reverse thing.
WHY?
There are several reasons why this module can be useful.
First, it allows you to use all ubic features (watchdog, pretty CLI interface, persistent service states) without changing any of your code.
Second, some daemons don't provide a way not to detach them from a terminal. Classic init scripts usually use start-stop-daemon
to start these daemons. Ubic::Daemon
and Ubic::Service::SimpleDaemon
can't be used to start such processes. You could write system('start-stop-daemon ...')
in your ubic service code, but if you already got a working init script, why bother?
CAVEATS
Init script must conform to LSB specification (http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html).
At the very least, it must exit with zero exit code on successful start, stop and status commands, and with non-zero exit code on unsuccessful status command.
This module doesn't distinguish
broken
andnot running
states yet. It interprets any non-zero status code asnot running
.
CONSTRUCTOR
- new($init_script_name)
-
If
$init_script_name
contains/
, it'll be interpreted as a filename.Otherwise,
/etc/init.d/$init_script_name
will be used.
AUTHOR
Vyacheslav Matyukhin <mmcleric@yandex-team.ru>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Yandex LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.