Ooops, Missed stuff:

>
> Daemon, double fork magic in Python:
>
> from socket import *
> from time import time, ctime, sleep
> from threading import Lock, Thread, Event
> import os, sys, asyncore, getopt

class TaskThread(Thread):
    """Thread that executes a task every N seconds"""
# Stuff goes here

class Listener(asyncore.dispatcher):
# More Stuff Here
# Helpful comment

>

>
> def main():
>     hostname = 'foobar'
>
>     SERVERIP = gethostbyname( hostname )
>     HBPORT = 1667
>     LISTEN_PORT = 2667
>     BEATWAIT = 10
>
>     hbThread = TaskThread (SERVERIP, HBPORT)
>     hbThread.start ()
>
>     print "Listening ..."
>     listenServer = Listener(LISTEN_PORT)
>     while 1:
>         asyncore.poll()
>         sleep(0.1)
>

if __name__ == "__main__":

>
> # do the UNIX double-fork magic, see Stevens' "Advanced
> # Programming in the UNIX Environment" for details (ISBN 0201563177)
>     try:
>         pid = os.fork()
>         if pid > 0:
>             # exit first parent
>             sys.exit(0)
>     except OSError, e:
>         print "fork #1 failed: %d (%s)" % (e.errno, e.strerror)
>         sys.exit(1)
>
>     # decouple from parent environment
>     os.chdir("/")
>     os.setsid()
>     os.umask(0)
>
>     # do second fork
>     try:
>         pid = os.fork()
>         if pid > 0:
>             # exit from second parent, print eventual PID before
>             print "Daemon PID %d" % pid
>             sys.exit(0)
>     except OSError, e:
>         print "fork #2 failed: %d (%s)" % (e.errno, e.strerror)
>         sys.exit(1)
>
>     # start the daemon main loop
>     main()
>

--
----------------------------------------------------------------------
Mark A. Bolstad                                 [EMAIL PROTECTED]
Raytheon Systems Company                        (410)278-9149
Scientific Visualization Specialist
U.S. Army Research Laboratory   -   HPC Major Shared Resource Center
----------------------------------------------------------------------


Reply via email to