Example #1
0
def startup():

    tornado.options.parse_command_line()
    print 'port: %s' % (options.port)
    if options.daemonize:
        from daemonize import become_daemon
        become_daemon(our_home_dir=options.workdir)
    run(options)
Example #2
0
    def __init__(self, config):
        self.config = config

        if config.getboolean('bot', 'daemon'):
            from daemonize import become_daemon
            import fcntl
            self.logfile = config.get('daemon', 'logfile', '')
            if config.getboolean('bot', 'debug'):
                basicConfig(level=DEBUG, format='%(asctime)s %(levelname)s \
                        %(message)s', filename=self.logfile)
            else:
                basicConfig(level=INFO, format='%(asctime)s %(levelname)s \
                        %(message)s', filename=self.logfile)
            become_daemon()
            try:
                self.pidfile = open(config.get('daemon', 'pidfile'), 'w')
                fcntl.lockf(self.pidfile, fcntl.LOCK_EX|fcntl.LOCK_NB)
                self.pidfile.write('%s' % (os.getpid()))
                self.pidfile.flush()
            except Exception, e:
                error('error create pid file %s' % str(e))
failover_id = str( uuid.uuid1() )
process_start = time.time()

analyzer = PingsAnalyzer( failtime, len( failovers ) )

try:    
    httpserver = HttpServer( port, analyzer )
except socket.error, e:
    print >> sys.stderr, "Error while starting http server:", e
    exit( 1 )

print "Replica process started. ReplicaProcessId = %s, Port = %d" % ( failover_id, port )
logger.trace( "Replica process started. ReplicaProcessId = %s, Port = %d" % ( failover_id, port ) )

become_daemon()
write_pid( pidfile )

httpserver.start()    

lasttime = {}
info = {}

while True:
    for hostport in redises:
        r = redis.Redis( hostport[ 0 ], port = int( hostport[ 1 ] ), socket_timeout = check_delay / 2 )
        role, master_host, master_port, used_memory = "", "", "", ""
        try:
            redis_info = r.info()
            if redis_info[ "loading" ] == 0:
                role = redis_info[ "role" ]
Example #4
0
    if options["daemonize"] is None:
        # Default to daemonizing if we're running on a socket/named pipe.
        daemonize = (wsgi_opts['bindAddress'] is not None)
    else:
        if options["daemonize"].lower() in ('true', 'yes', 't'):
            daemonize = True
        elif options["daemonize"].lower() in ('false', 'no', 'f'):
            daemonize = False
        else:
            return fastcgi_help("ERROR: Invalid option for daemonize parameter.")

    daemon_kwargs = {}
    if options['outlog']:
        daemon_kwargs['out_log'] = options['outlog']
    if options['errlog']:
        daemon_kwargs['err_log'] = options['errlog']
    if options['umask']:
        daemon_kwargs['umask'] = int(options['umask'], 8)

    if daemonize:
        from daemonize import become_daemon
        become_daemon(our_home_dir=options["workdir"], **daemon_kwargs)

    if options["pidfile"]:
        fp = open(options["pidfile"], "w")
        fp.write("%d\n" % os.getpid())
        fp.close()

    WSGIServer(WSGIHandler, **wsgi_opts).run()
Example #5
0
#!/usr/bin/python -u

import sys, os
from daemonize import become_daemon

SOUNDFILE = sys.argv[1]
APLAY = '/usr/bin/aplay'
PID = '/var/run/beepd.pid'

rc = become_daemon()
try:
    file(PID, 'w').write(str(rc))
except IOError:
    sys.stderr.write("Can't write PID file.\n")
try:
    beepdev = open("/dev/beep")
except IOError:
    sys.stderr.write("Can't open beep device.\n")

try:
    while 1:
        if beepdev.read(1):
            rc = os.fork()
            if not rc:
                os.execl(APLAY, APLAY, "-N", SOUNDFILE)
        else:
            continue
except:
    beepdev.close()
    sys.stderr.write("Exiting.\n")
    sys.exit(0)
Example #6
0
    if options["daemonize"] is None:
        # Default to daemonizing if we're running on a socket/named pipe.
        daemonize = (wsgi_opts['bindAddress'] is not None)
    else:
        if options["daemonize"].lower() in ('true', 'yes', 't'):
            daemonize = True
        elif options["daemonize"].lower() in ('false', 'no', 'f'):
            daemonize = False
        else:
            return fastcgi_help(
                "ERROR: Invalid option for daemonize parameter.")

    daemon_kwargs = {}
    if options['outlog']:
        daemon_kwargs['out_log'] = options['outlog']
    if options['errlog']:
        daemon_kwargs['err_log'] = options['errlog']
    if options['umask']:
        daemon_kwargs['umask'] = int(options['umask'], 8)

    if daemonize:
        from daemonize import become_daemon
        become_daemon(our_home_dir=options["workdir"], **daemon_kwargs)

    if options["pidfile"]:
        fp = open(options["pidfile"], "w")
        fp.write("%d\n" % os.getpid())
        fp.close()

    WSGIServer(WSGIHandler, **wsgi_opts).run()
Example #7
0
File: pycs.py Project: myelin/pycs
		else:
			print "unknown argument: %s" % arg

	# Become a daemon if we're running on a POSIX platform.
	# TODO: run as a Windows service on NT.
	if os.name == 'posix':
		
		# Install signal handlers
		install_handlers()

		if do_daemonize:
			# Become a UNIX daemon
			if os.getenv('PYCS_NO_LOGGING'):
				daemonize.become_daemon(
					pycs_paths.ROOTDIR,
					'/dev/null',
					'/dev/null'
				)
			else:
				daemonize.become_daemon(
					pycs_paths.ROOTDIR,
					os.path.join( pycs_paths.LOGDIR, 'etc.log' ),
					os.path.join( pycs_paths.LOGDIR, 'error.log' )
				)
	
		# Write the presently running pid to a pid file
		# which will typically be used to stop and get status of
		# the pycs daemon.
		my_pid = os.getpid()
		pid_file = open( pycs_paths.PIDFILE, 'w' )
		pid_file.write( "%d" % my_pid )