2013-05-27 01:10:51 +02:00
<?xml version="1.0" encoding="ascii"?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >
< head >
2013-05-27 01:39:00 +02:00
< title > linspector.lib.core.daemon< / title >
2013-05-27 01:10:51 +02:00
< link rel = "stylesheet" href = "epydoc.css" type = "text/css" / >
< script type = "text/javascript" src = "epydoc.js" > < / script >
< / head >
< body bgcolor = "white" text = "black" link = "blue" vlink = "#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
< table class = "navbar" border = "0" width = "100%" cellpadding = "0"
bgcolor="#a0c0ff" cellspacing="0">
< tr valign = "middle" >
<!-- Home link -->
< th > < a
2013-05-27 01:39:00 +02:00
href="linspector-module.html">Home< / a > < / th >
2013-05-27 01:10:51 +02:00
<!-- Tree link -->
< th > < a
href="module-tree.html">Trees< / a > < / th >
<!-- Index link -->
< th > < a
href="identifier-index.html">Indices< / a > < / th >
<!-- Help link -->
< th > < a
href="help.html">Help< / a > < / th >
< th class = "navbar" width = "100%" > < / th >
< / tr >
< / table >
< table width = "100%" cellpadding = "0" cellspacing = "0" >
< tr valign = "top" >
< td width = "100%" >
< span class = "breadcrumbs" >
2013-05-27 01:39:00 +02:00
< a href = "linspector-module.html" > Package linspector< / a > ::
< a href = "linspector.lib-module.html" > Package lib< / a > ::
< a href = "linspector.lib.core-module.html" > Package core< / a > ::
2013-05-27 01:10:51 +02:00
Module daemon
< / span >
< / td >
< td >
< table cellpadding = "0" cellspacing = "0" >
<!-- hide/show private -->
< tr > < td align = "right" > < span class = "options" > [< a href = "javascript:void(0);" class = "privatelink"
onclick="toggle_private();">hide private< / a > ]< / span > < / td > < / tr >
< tr > < td align = "right" > < span class = "options"
>[< a href = "frames.html" target = "_top" > frames< /a
2013-05-27 01:39:00 +02:00
>] | < a href = "linspector.lib.core.daemon-pysrc.html"
2013-05-27 01:10:51 +02:00
target="_top">no frames< / a > ]< / span > < / td > < / tr >
< / table >
< / td >
< / tr >
< / table >
2013-05-27 01:39:00 +02:00
< h1 class = "epydoc" > Source Code for < a href = "linspector.lib.core.daemon-module.html" > Module linspector.lib.core.daemon< / a > < / h1 >
2013-05-27 01:10:51 +02:00
< pre class = "py-src" >
< a name = "L1" > < / a > < tt class = "py-lineno" > 1< / tt > < tt class = "py-line" > < tt class = "py-keyword" > import< / tt > < tt class = "py-name" > sys< / tt > < / tt >
< a name = "L2" > < / a > < tt class = "py-lineno" > 2< / tt > < tt class = "py-line" > < tt class = "py-keyword" > import< / tt > < tt class = "py-name" > os< / tt > < / tt >
< a name = "L3" > < / a > < tt class = "py-lineno" > 3< / tt > < tt class = "py-line" > < tt class = "py-keyword" > import< / tt > < tt class = "py-name" > time< / tt > < / tt >
< a name = "L4" > < / a > < tt class = "py-lineno" > 4< / tt > < tt class = "py-line" > < tt class = "py-keyword" > import< / tt > < tt class = "py-name" > atexit< / tt > < / tt >
< a name = "L5" > < / a > < tt class = "py-lineno" > 5< / tt > < tt class = "py-line" > < tt class = "py-keyword" > from< / tt > < tt class = "py-name" > signal< / tt > < tt class = "py-keyword" > import< / tt > < tt class = "py-name" > SIGTERM< / tt > < / tt >
< a name = "L6" > < / a > < tt class = "py-lineno" > 6< / tt > < tt class = "py-line" > < / tt >
< a name = "L7" > < / a > < tt class = "py-lineno" > 7< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon" > < / a > < div id = "Daemon-def" > < a name = "L8" > < / a > < tt class = "py-lineno" > 8< / tt > < a class = "py-toggle" href = "#" id = "Daemon-toggle" onclick = "return toggle('Daemon');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > class< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html" > Daemon< / a > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon-collapsed" style = "display:none;" pad = "+++" indent = "++++" > < / div > < div id = "Daemon-expanded" > < a name = "L9" > < / a > < tt class = "py-lineno" > 9< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L10" > < / a > < tt class = "py-lineno" > 10< / tt > < tt class = "py-line" > < tt class = "py-docstring" > A generic daemon class.< / tt > < / tt >
< a name = "L11" > < / a > < tt class = "py-lineno" > 11< / tt > < tt class = "py-line" > < tt class = "py-docstring" > < / tt > < / tt >
< a name = "L12" > < / a > < tt class = "py-lineno" > 12< / tt > < tt class = "py-line" > < tt class = "py-docstring" > Usage: subclass the Daemon class and override the run() method< / tt > < / tt >
< a name = "L13" > < / a > < tt class = "py-lineno" > 13< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L14" > < / a > < tt class = "py-lineno" > 14< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.__init__" > < / a > < div id = "Daemon.__init__-def" > < a name = "L15" > < / a > < tt class = "py-lineno" > 15< / tt > < a class = "py-toggle" href = "#" id = "Daemon.__init__-toggle" onclick = "return toggle('Daemon.__init__');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#__init__" > __init__< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-param" > pidfile< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-param" > stdin< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-string" > '/dev/null'< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-param" > stdout< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-string" > '/dev/null'< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-param" > stderr< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-string" > '/dev/null'< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.__init__-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.__init__-expanded" > < a name = "L16" > < / a > < tt class = "py-lineno" > 16< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdin< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > stdin< / tt > < / tt >
< a name = "L17" > < / a > < tt class = "py-lineno" > 17< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdout< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > stdout< / tt > < / tt >
< a name = "L18" > < / a > < tt class = "py-lineno" > 18< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > stderr< / tt > < / tt >
< a name = "L19" > < / a > < tt class = "py-lineno" > 19< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > pidfile< / tt > < / tt >
< / div > < a name = "L20" > < / a > < tt class = "py-lineno" > 20< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.daemonize" > < / a > < div id = "Daemon.daemonize-def" > < a name = "L21" > < / a > < tt class = "py-lineno" > 21< / tt > < a class = "py-toggle" href = "#" id = "Daemon.daemonize-toggle" onclick = "return toggle('Daemon.daemonize');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#daemonize" > daemonize< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.daemonize-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.daemonize-expanded" > < a name = "L22" > < / a > < tt class = "py-lineno" > 22< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L23" > < / a > < tt class = "py-lineno" > 23< / tt > < tt class = "py-line" > < tt class = "py-docstring" > do the UNIX double-fork magic, see Stevens' "Advanced< / tt > < / tt >
< a name = "L24" > < / a > < tt class = "py-lineno" > 24< / tt > < tt class = "py-line" > < tt class = "py-docstring" > Programming in the UNIX Environment" for details (ISBN 0201563177)< / tt > < / tt >
< a name = "L25" > < / a > < tt class = "py-lineno" > 25< / tt > < tt class = "py-line" > < tt class = "py-docstring" > http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16< / tt > < / tt >
< a name = "L26" > < / a > < tt class = "py-lineno" > 26< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L27" > < / a > < tt class = "py-lineno" > 27< / tt > < tt class = "py-line" > < tt class = "py-keyword" > try< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L28" > < / a > < tt class = "py-lineno" > 28< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fork< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L29" > < / a > < tt class = "py-lineno" > 29< / tt > < tt class = "py-line" > < tt class = "py-keyword" > if< / tt > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > > < / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L30" > < / a > < tt class = "py-lineno" > 30< / tt > < tt class = "py-line" > < tt class = "py-comment" > # exit first parent< / tt > < / tt >
< a name = "L31" > < / a > < tt class = "py-lineno" > 31< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exit< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L32" > < / a > < tt class = "py-lineno" > 32< / tt > < tt class = "py-line" > < tt class = "py-keyword" > except< / tt > < tt class = "py-name" > OSError< / tt > < tt class = "py-op" > ,< / tt > < tt id = "link-0" class = "py-name" targets = "Method linspector.lib.core.logger.Logger.e()=linspector.lib.core.logger.Logger-class.html#e" > < a title = "linspector.lib.core.logger.Logger.e" class = "py-name" href = "#" onclick = "return doclink('link-0', 'e', 'link-0');" > e< / a > < / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L33" > < / a > < tt class = "py-lineno" > 33< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > write< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-string" > "fork #1 failed: %d (%s)\n"< / tt > < tt class = "py-op" > %< / tt > < tt class = "py-op" > (< / tt > < tt id = "link-1" class = "py-name" > < a title = "linspector.lib.core.logger.Logger.e" class = "py-name" href = "#" onclick = "return doclink('link-1', 'e', 'link-0');" > e< / a > < / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > errno< / tt > < tt class = "py-op" > ,< / tt > < tt id = "link-2" class = "py-name" > < a title = "linspector.lib.core.logger.Logger.e" class = "py-name" href = "#" onclick = "return doclink('link-2', 'e', 'link-0');" > e< / a > < / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > strerror< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< a name = "L34" > < / a > < tt class = "py-lineno" > 34< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exit< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 1< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L35" > < / a > < tt class = "py-lineno" > 35< / tt > < tt class = "py-line" > < / tt >
< a name = "L36" > < / a > < tt class = "py-lineno" > 36< / tt > < tt class = "py-line" > < tt class = "py-comment" > # decouple from parent environment< / tt > < / tt >
< a name = "L37" > < / a > < tt class = "py-lineno" > 37< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > chdir< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-string" > "/"< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L38" > < / a > < tt class = "py-lineno" > 38< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > setsid< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L39" > < / a > < tt class = "py-lineno" > 39< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > umask< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L40" > < / a > < tt class = "py-lineno" > 40< / tt > < tt class = "py-line" > < / tt >
< a name = "L41" > < / a > < tt class = "py-lineno" > 41< / tt > < tt class = "py-line" > < tt class = "py-comment" > # do second fork< / tt > < / tt >
< a name = "L42" > < / a > < tt class = "py-lineno" > 42< / tt > < tt class = "py-line" > < tt class = "py-keyword" > try< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L43" > < / a > < tt class = "py-lineno" > 43< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fork< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L44" > < / a > < tt class = "py-lineno" > 44< / tt > < tt class = "py-line" > < tt class = "py-keyword" > if< / tt > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > > < / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L45" > < / a > < tt class = "py-lineno" > 45< / tt > < tt class = "py-line" > < tt class = "py-comment" > # exit from second parent< / tt > < / tt >
< a name = "L46" > < / a > < tt class = "py-lineno" > 46< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exit< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L47" > < / a > < tt class = "py-lineno" > 47< / tt > < tt class = "py-line" > < tt class = "py-keyword" > except< / tt > < tt class = "py-name" > OSError< / tt > < tt class = "py-op" > ,< / tt > < tt id = "link-3" class = "py-name" > < a title = "linspector.lib.core.logger.Logger.e" class = "py-name" href = "#" onclick = "return doclink('link-3', 'e', 'link-0');" > e< / a > < / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L48" > < / a > < tt class = "py-lineno" > 48< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > write< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-string" > "fork #2 failed: %d (%s)\n"< / tt > < tt class = "py-op" > %< / tt > < tt class = "py-op" > (< / tt > < tt id = "link-4" class = "py-name" > < a title = "linspector.lib.core.logger.Logger.e" class = "py-name" href = "#" onclick = "return doclink('link-4', 'e', 'link-0');" > e< / a > < / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > errno< / tt > < tt class = "py-op" > ,< / tt > < tt id = "link-5" class = "py-name" > < a title = "linspector.lib.core.logger.Logger.e" class = "py-name" href = "#" onclick = "return doclink('link-5', 'e', 'link-0');" > e< / a > < / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > strerror< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< a name = "L49" > < / a > < tt class = "py-lineno" > 49< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exit< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 1< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L50" > < / a > < tt class = "py-lineno" > 50< / tt > < tt class = "py-line" > < / tt >
< a name = "L51" > < / a > < tt class = "py-lineno" > 51< / tt > < tt class = "py-line" > < tt class = "py-comment" > # redirect standard file descriptors< / tt > < / tt >
< a name = "L52" > < / a > < tt class = "py-lineno" > 52< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdout< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > flush< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L53" > < / a > < tt class = "py-lineno" > 53< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > flush< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L54" > < / a > < tt class = "py-lineno" > 54< / tt > < tt class = "py-line" > < tt class = "py-name" > si< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > file< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdin< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-string" > 'r'< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L55" > < / a > < tt class = "py-lineno" > 55< / tt > < tt class = "py-line" > < tt class = "py-name" > so< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > file< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdout< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-string" > 'a+'< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L56" > < / a > < tt class = "py-lineno" > 56< / tt > < tt class = "py-line" > < tt class = "py-name" > se< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > file< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-string" > 'a+'< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L57" > < / a > < tt class = "py-lineno" > 57< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > dup2< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > si< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fileno< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdin< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fileno< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L58" > < / a > < tt class = "py-lineno" > 58< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > dup2< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > so< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fileno< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stdout< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fileno< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L59" > < / a > < tt class = "py-lineno" > 59< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > dup2< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > se< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fileno< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > fileno< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L60" > < / a > < tt class = "py-lineno" > 60< / tt > < tt class = "py-line" > < / tt >
< a name = "L61" > < / a > < tt class = "py-lineno" > 61< / tt > < tt class = "py-line" > < tt class = "py-comment" > # write pidfile< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L62" > < / a > < tt class = "py-lineno" > 62< / tt > < tt class = "py-line" > < tt class = "py-name" > atexit< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > register< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-6" class = "py-name" targets = "Method linspector.lib.core.daemon.Daemon.delpid()=linspector.lib.core.daemon.Daemon-class.html#delpid" > < a title = "linspector.lib.core.daemon.Daemon.delpid" class = "py-name" href = "#" onclick = "return doclink('link-6', 'delpid', 'link-6');" > delpid< / a > < / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< a name = "L63" > < / a > < tt class = "py-lineno" > 63< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > str< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > getpid< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L64" > < / a > < tt class = "py-lineno" > 64< / tt > < tt class = "py-line" > < tt class = "py-name" > file< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-string" > 'w+'< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > write< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-string" > "%s\n"< / tt > < tt class = "py-op" > %< / tt > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > )< / tt > < / tt >
< / div > < a name = "L65" > < / a > < tt class = "py-lineno" > 65< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.delpid" > < / a > < div id = "Daemon.delpid-def" > < a name = "L66" > < / a > < tt class = "py-lineno" > 66< / tt > < a class = "py-toggle" href = "#" id = "Daemon.delpid-toggle" onclick = "return toggle('Daemon.delpid');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#delpid" > delpid< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.delpid-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.delpid-expanded" > < a name = "L67" > < / a > < tt class = "py-lineno" > 67< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > remove< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > )< / tt > < / tt >
< / div > < a name = "L68" > < / a > < tt class = "py-lineno" > 68< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.start" > < / a > < div id = "Daemon.start-def" > < a name = "L69" > < / a > < tt class = "py-lineno" > 69< / tt > < a class = "py-toggle" href = "#" id = "Daemon.start-toggle" onclick = "return toggle('Daemon.start');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#start" > start< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.start-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.start-expanded" > < a name = "L70" > < / a > < tt class = "py-lineno" > 70< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L71" > < / a > < tt class = "py-lineno" > 71< / tt > < tt class = "py-line" > < tt class = "py-docstring" > Start the daemon< / tt > < / tt >
< a name = "L72" > < / a > < tt class = "py-lineno" > 72< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L73" > < / a > < tt class = "py-lineno" > 73< / tt > < tt class = "py-line" > < tt class = "py-comment" > # Check for a pidfile to see if the daemon already runs< / tt > < / tt >
< a name = "L74" > < / a > < tt class = "py-lineno" > 74< / tt > < tt class = "py-line" > < tt class = "py-keyword" > try< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L75" > < / a > < tt class = "py-lineno" > 75< / tt > < tt class = "py-line" > < tt class = "py-name" > pf< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > file< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-string" > 'r'< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L76" > < / a > < tt class = "py-lineno" > 76< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > int< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > pf< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > read< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > strip< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L77" > < / a > < tt class = "py-lineno" > 77< / tt > < tt class = "py-line" > < tt class = "py-name" > pf< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-7" class = "py-name" targets = "Method linspector.lib.core.logger.Logger.close()=linspector.lib.core.logger.Logger-class.html#close" > < a title = "linspector.lib.core.logger.Logger.close" class = "py-name" href = "#" onclick = "return doclink('link-7', 'close', 'link-7');" > close< / a > < / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< a name = "L78" > < / a > < tt class = "py-lineno" > 78< / tt > < tt class = "py-line" > < tt class = "py-keyword" > except< / tt > < tt class = "py-name" > IOError< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L79" > < / a > < tt class = "py-lineno" > 79< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > None< / tt > < / tt >
< a name = "L80" > < / a > < tt class = "py-lineno" > 80< / tt > < tt class = "py-line" > < / tt >
< a name = "L81" > < / a > < tt class = "py-lineno" > 81< / tt > < tt class = "py-line" > < tt class = "py-keyword" > if< / tt > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L82" > < / a > < tt class = "py-lineno" > 82< / tt > < tt class = "py-line" > < tt class = "py-name" > message< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-string" > "pidfile %s already exist. daemon already running?\n"< / tt > < / tt >
< a name = "L83" > < / a > < tt class = "py-lineno" > 83< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > write< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > message< / tt > < tt class = "py-op" > %< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L84" > < / a > < tt class = "py-lineno" > 84< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exit< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 1< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L85" > < / a > < tt class = "py-lineno" > 85< / tt > < tt class = "py-line" > < / tt >
< a name = "L86" > < / a > < tt class = "py-lineno" > 86< / tt > < tt class = "py-line" > < tt class = "py-comment" > # Start the daemon< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L87" > < / a > < tt class = "py-lineno" > 87< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-8" class = "py-name" targets = "Method linspector.lib.core.daemon.Daemon.daemonize()=linspector.lib.core.daemon.Daemon-class.html#daemonize" > < a title = "linspector.lib.core.daemon.Daemon.daemonize" class = "py-name" href = "#" onclick = "return doclink('link-8', 'daemonize', 'link-8');" > daemonize< / a > < / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L88" > < / a > < tt class = "py-lineno" > 88< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-9" class = "py-name" targets = "Method linspector.lib.core.daemon.Daemon.run()=linspector.lib.core.daemon.Daemon-class.html#run,Method linspector.lib.core.linspector_daemon.LinspectorDaemon.run()=linspector.lib.core.linspector_daemon.LinspectorDaemon-class.html#run" > < a title = "linspector.lib.core.daemon.Daemon.run
linspector.lib.core.linspector_daemon.LinspectorDaemon.run" class="py-name" href="#" onclick="return doclink('link-9', 'run', 'link-9');">run< / a > < / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < a name = "L89" > < / a > < tt class = "py-lineno" > 89< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.stop" > < / a > < div id = "Daemon.stop-def" > < a name = "L90" > < / a > < tt class = "py-lineno" > 90< / tt > < a class = "py-toggle" href = "#" id = "Daemon.stop-toggle" onclick = "return toggle('Daemon.stop');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#stop" > stop< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.stop-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.stop-expanded" > < a name = "L91" > < / a > < tt class = "py-lineno" > 91< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L92" > < / a > < tt class = "py-lineno" > 92< / tt > < tt class = "py-line" > < tt class = "py-docstring" > Stop the daemon< / tt > < / tt >
< a name = "L93" > < / a > < tt class = "py-lineno" > 93< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L94" > < / a > < tt class = "py-lineno" > 94< / tt > < tt class = "py-line" > < tt class = "py-comment" > # Get the pid from the pidfile< / tt > < / tt >
< a name = "L95" > < / a > < tt class = "py-lineno" > 95< / tt > < tt class = "py-line" > < tt class = "py-keyword" > try< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L96" > < / a > < tt class = "py-lineno" > 96< / tt > < tt class = "py-line" > < tt class = "py-name" > pf< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > file< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-string" > 'r'< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L97" > < / a > < tt class = "py-lineno" > 97< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > int< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > pf< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > read< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > strip< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L98" > < / a > < tt class = "py-lineno" > 98< / tt > < tt class = "py-line" > < tt class = "py-name" > pf< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-10" class = "py-name" > < a title = "linspector.lib.core.logger.Logger.close" class = "py-name" href = "#" onclick = "return doclink('link-10', 'close', 'link-7');" > close< / a > < / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< a name = "L99" > < / a > < tt class = "py-lineno" > 99< / tt > < tt class = "py-line" > < tt class = "py-keyword" > except< / tt > < tt class = "py-name" > IOError< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L100" > < / a > < tt class = "py-lineno" > 100< / tt > < tt class = "py-line" > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > None< / tt > < / tt >
< a name = "L101" > < / a > < tt class = "py-lineno" > 101< / tt > < tt class = "py-line" > < / tt >
< a name = "L102" > < / a > < tt class = "py-lineno" > 102< / tt > < tt class = "py-line" > < tt class = "py-keyword" > if< / tt > < tt class = "py-keyword" > not< / tt > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L103" > < / a > < tt class = "py-lineno" > 103< / tt > < tt class = "py-line" > < tt class = "py-name" > message< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-string" > "pidfile %s does not exist. daemon not running?\n"< / tt > < / tt >
< a name = "L104" > < / a > < tt class = "py-lineno" > 104< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > stderr< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > write< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > message< / tt > < tt class = "py-op" > %< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L105" > < / a > < tt class = "py-lineno" > 105< / tt > < tt class = "py-line" > < tt class = "py-keyword" > return< / tt > < tt class = "py-comment" > # not an error in a restart< / tt > < / tt >
< a name = "L106" > < / a > < tt class = "py-lineno" > 106< / tt > < tt class = "py-line" > < / tt >
< a name = "L107" > < / a > < tt class = "py-lineno" > 107< / tt > < tt class = "py-line" > < tt class = "py-comment" > # Try killing the daemon process< / tt > < / tt >
< a name = "L108" > < / a > < tt class = "py-lineno" > 108< / tt > < tt class = "py-line" > < tt class = "py-keyword" > try< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L109" > < / a > < tt class = "py-lineno" > 109< / tt > < tt class = "py-line" > < tt class = "py-keyword" > while< / tt > < tt class = "py-number" > 1< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L110" > < / a > < tt class = "py-lineno" > 110< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > kill< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > pid< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-name" > SIGTERM< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L111" > < / a > < tt class = "py-lineno" > 111< / tt > < tt class = "py-line" > < tt class = "py-name" > time< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > sleep< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 0.1< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L112" > < / a > < tt class = "py-lineno" > 112< / tt > < tt class = "py-line" > < tt class = "py-keyword" > except< / tt > < tt class = "py-name" > OSError< / tt > < tt class = "py-op" > ,< / tt > < tt class = "py-name" > err< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L113" > < / a > < tt class = "py-lineno" > 113< / tt > < tt class = "py-line" > < tt class = "py-name" > err< / tt > < tt class = "py-op" > =< / tt > < tt class = "py-name" > str< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > err< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L114" > < / a > < tt class = "py-lineno" > 114< / tt > < tt class = "py-line" > < tt class = "py-keyword" > if< / tt > < tt class = "py-name" > err< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > find< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-string" > "No such process"< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > > < / tt > < tt class = "py-number" > 0< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L115" > < / a > < tt class = "py-lineno" > 115< / tt > < tt class = "py-line" > < tt class = "py-keyword" > if< / tt > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > path< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exists< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L116" > < / a > < tt class = "py-lineno" > 116< / tt > < tt class = "py-line" > < tt class = "py-name" > os< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > remove< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > pidfile< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L117" > < / a > < tt class = "py-lineno" > 117< / tt > < tt class = "py-line" > < tt class = "py-keyword" > else< / tt > < tt class = "py-op" > :< / tt > < / tt >
< a name = "L118" > < / a > < tt class = "py-lineno" > 118< / tt > < tt class = "py-line" > < tt class = "py-keyword" > print< / tt > < tt class = "py-name" > str< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-name" > err< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L119" > < / a > < tt class = "py-lineno" > 119< / tt > < tt class = "py-line" > < tt class = "py-name" > sys< / tt > < tt class = "py-op" > .< / tt > < tt class = "py-name" > exit< / tt > < tt class = "py-op" > (< / tt > < tt class = "py-number" > 1< / tt > < tt class = "py-op" > )< / tt > < / tt >
< / div > < a name = "L120" > < / a > < tt class = "py-lineno" > 120< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.restart" > < / a > < div id = "Daemon.restart-def" > < a name = "L121" > < / a > < tt class = "py-lineno" > 121< / tt > < a class = "py-toggle" href = "#" id = "Daemon.restart-toggle" onclick = "return toggle('Daemon.restart');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#restart" > restart< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.restart-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.restart-expanded" > < a name = "L122" > < / a > < tt class = "py-lineno" > 122< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L123" > < / a > < tt class = "py-lineno" > 123< / tt > < tt class = "py-line" > < tt class = "py-docstring" > Restart the daemon< / tt > < / tt >
< a name = "L124" > < / a > < tt class = "py-lineno" > 124< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "L125" > < / a > < tt class = "py-lineno" > 125< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-11" class = "py-name" targets = "Method linspector.lib.core.daemon.Daemon.stop()=linspector.lib.core.daemon.Daemon-class.html#stop" > < a title = "linspector.lib.core.daemon.Daemon.stop" class = "py-name" href = "#" onclick = "return doclink('link-11', 'stop', 'link-11');" > stop< / a > < / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
< a name = "L126" > < / a > < tt class = "py-lineno" > 126< / tt > < tt class = "py-line" > < tt class = "py-name" > self< / tt > < tt class = "py-op" > .< / tt > < tt id = "link-12" class = "py-name" targets = "Method linspector.lib.core.daemon.Daemon.start()=linspector.lib.core.daemon.Daemon-class.html#start" > < a title = "linspector.lib.core.daemon.Daemon.start" class = "py-name" href = "#" onclick = "return doclink('link-12', 'start', 'link-12');" > start< / a > < / tt > < tt class = "py-op" > (< / tt > < tt class = "py-op" > )< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < a name = "L127" > < / a > < tt class = "py-lineno" > 127< / tt > < tt class = "py-line" > < / tt >
2013-05-27 01:39:00 +02:00
< a name = "Daemon.run" > < / a > < div id = "Daemon.run-def" > < a name = "L128" > < / a > < tt class = "py-lineno" > 128< / tt > < a class = "py-toggle" href = "#" id = "Daemon.run-toggle" onclick = "return toggle('Daemon.run');" > -< / a > < tt class = "py-line" > < tt class = "py-keyword" > def< / tt > < a class = "py-def-name" href = "linspector.lib.core.daemon.Daemon-class.html#run" > run< / a > < tt class = "py-op" > (< / tt > < tt class = "py-param" > self< / tt > < tt class = "py-op" > )< / tt > < tt class = "py-op" > :< / tt > < / tt >
2013-05-27 01:10:51 +02:00
< / div > < div id = "Daemon.run-collapsed" style = "display:none;" pad = "+++" indent = "++++++++" > < / div > < div id = "Daemon.run-expanded" > < a name = "L129" > < / a > < tt class = "py-lineno" > 129< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< a name = "L130" > < / a > < tt class = "py-lineno" > 130< / tt > < tt class = "py-line" > < tt class = "py-docstring" > You should override this method when you subclass Daemon.< / tt > < / tt >
< a name = "L131" > < / a > < tt class = "py-lineno" > 131< / tt > < tt class = "py-line" > < tt class = "py-docstring" > It will be called after the process has been< / tt > < / tt >
< a name = "L132" > < / a > < tt class = "py-lineno" > 132< / tt > < tt class = "py-line" > < tt class = "py-docstring" > daemonized by start() or restart().< / tt > < / tt >
< a name = "L133" > < / a > < tt class = "py-lineno" > 133< / tt > < tt class = "py-line" > < tt class = "py-docstring" > """< / tt > < / tt >
< / div > < / div > < a name = "L134" > < / a > < tt class = "py-lineno" > 134< / tt > < tt class = "py-line" > < / tt > < script type = "text/javascript" >
<!--
expandto(location.href);
// -->
< / script >
< / pre >
< br / >
<!-- ==================== NAVIGATION BAR ==================== -->
< table class = "navbar" border = "0" width = "100%" cellpadding = "0"
bgcolor="#a0c0ff" cellspacing="0">
< tr valign = "middle" >
<!-- Home link -->
< th > < a
2013-05-27 01:39:00 +02:00
href="linspector-module.html">Home< / a > < / th >
2013-05-27 01:10:51 +02:00
<!-- Tree link -->
< th > < a
href="module-tree.html">Trees< / a > < / th >
<!-- Index link -->
< th > < a
href="identifier-index.html">Indices< / a > < / th >
<!-- Help link -->
< th > < a
href="help.html">Help< / a > < / th >
< th class = "navbar" width = "100%" > < / th >
< / tr >
< / table >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%%" >
< tr >
< td align = "left" class = "footer" >
2013-05-30 00:45:46 +02:00
Generated by Epydoc 3.0.1 on Thu May 30 00:45:00 2013
2013-05-27 01:10:51 +02:00
< / td >
< td align = "right" class = "footer" >
< a target = "mainFrame" href = "http://epydoc.sourceforge.net"
>http://epydoc.sourceforge.net< / a >
< / td >
< / tr >
< / table >
< script type = "text/javascript" >
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie();
// -->
< / script >
< / body >
< / html >