Exemple #1
0
    def daemonize(self, args):
        log.setup(self.log_file)
        log.info("Daemonizing.")

        self.before_daemonize(args)

        if unix.still_running(self.name, pid_file_path=self.pid_path):
            log.error("%s still running. Aborting." % self.name)
            sys.exit(1)
        else:
            unix.daemonize(self.name, pid_file_path=self.pid_path)

        def shutdown_handler(signal, frame):
            self.shutdown(signal)
            sys.exit(0)

        unix.register_shutdown(shutdown_handler)

        self.before_jail(args)

        log.info("Setting up the chroot jail to: %s" % self.run_dir)
        unix.chroot_jail(self.run_dir)

        self.before_drop_privs(args)

        unix.drop_privileges(uid_name=self.uid, gid_name=self.gid)

        log.info("Server %s running." % self.name)
        self.start(args)
Exemple #2
0
def test_setup(*calls):
    log.setup("tests/test.log")
    # weird but 0 is os_close, and we want to force an exception
    calls[0].side_effect = OSError

    # confirm the last three in the @path list are called
    for i in calls[0:3]:
        assert_true(i.called, "Did not call %r" % i)
Exemple #3
0
def test_setup(*calls):
    log.setup("tests/test.log")
    # weird but 0 is os_close, and we want to force an exception
    calls[0].side_effect=OSError

    # confirm the last three in the @path list are called
    for i in calls[0:3]:
        assert_true(i.called, "Did not call %r" % i)
Exemple #4
0
    def daemonize(self, args):
        log.setup(self.log_file)
        log.info("Daemonizing.")

        self.before_daemonize(args)

        if unix.still_running(self.name, pid_file_path=self.pid_path):
            log.error("%s still running. Aborting." % self.name)
            sys.exit(1)
        else:
            unix.daemonize(self.name, pid_file_path=self.pid_path)

        def shutdown_handler(signal, frame):
            self.shutdown(signal)
            sys.exit(0)

        unix.register_shutdown(shutdown_handler)

        if not os.path.exists(self.run_dir):
            log.warn("Directory %s does not exist, attempting to create it." %
                     self.run_dir)
            os.mkdir(self.run_dir)

            log.info(
                "Giving default permissions to %s, change them later if you need."
                % self.run_dir)
            os.chown(self.run_dir, self.unum, self.gnum)
            os.chmod(self.run_dir, self.run_dir_mode)

        if self.should_jail:
            self.before_jail(args)
            log.info("Setting up the chroot jail to: %s" % self.run_dir)
            unix.chroot_jail(self.run_dir)
        else:
            log.warn("This daemon does not jail itself, chdir to %s instead" %
                     self.run_dir)
            os.chdir(self.run_dir)

        if self.should_drop_priv:
            self.before_drop_privs(args)
            unix.drop_privileges(self.unum, self.gnum)
        else:
            log.warn("This daemon does not drop privileges.")

        log.info("Server %s running." % self.name)
        self.start(args)
Exemple #5
0
    def daemonize(self, args):
        log.setup(self.log_file)
        log.info("Daemonizing.")

        self.before_daemonize(args)

        if unix.still_running(self.name, pid_file_path=self.pid_path):
            log.error("%s still running. Aborting." % self.name)
            sys.exit(1)
        else:
            unix.daemonize(self.name, pid_file_path=self.pid_path)

        def shutdown_handler(signal, frame):
            self.shutdown(signal)
            sys.exit(0)

        unix.register_shutdown(shutdown_handler)

        if not os.path.exists(self.run_dir):
            log.warn("Directory %s does not exist, attempting to create it." %
                     self.run_dir)
            os.mkdir(self.run_dir)

            log.info("Giving default permissions to %s, change them later if you need."
                     % self.run_dir)
            os.chown(self.run_dir, self.unum, self.gnum)
            os.chmod(self.run_dir, self.run_dir_mode)

        if self.should_jail:
            self.before_jail(args)
            log.info("Setting up the chroot jail to: %s" % self.run_dir)
            unix.chroot_jail(self.run_dir)
        else:
            log.warn("This daemon does not jail itself, chdir to %s instead" % self.run_dir)
            os.chdir(self.run_dir)

        if self.should_drop_priv:
            self.before_drop_privs(args)
            unix.drop_privileges(self.unum, self.gnum)
        else:
            log.warn("This daemon does not drop privileges.")

        log.info("Server %s running." % self.name)
        self.start(args)
Exemple #6
0
 def main():
     """This will exit the daemon after 4 seconds."""
     log.setup('/tmp/test_daemonize_no_exit.log', force=True)
     for i in range(0, 4):
         log.info("I ran!")
         time.sleep(1)
Exemple #7
0
        self.server = None  # this gets the last one to do a forever on

        for port in self.ports:
            self.server = StreamServer((self.host, port), handle)
            self.server.start()

    def start(self, args):
        self.server.serve_forever()

    def shutdown(self, signal):
        log.info("Shutting down now signal: %d" % signal)


if __name__ == "__main__":

    log.setup('/tmp/geventserver.log')
    server = Service(config_file=os.getcwd() + '/examples/master.conf')
    server.run(sys.argv)

########NEW FILE########
__FILENAME__ = thread_server
import threading
import SocketServer
import sys
from lust import log, server


class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
    allow_reuse_address = True

    def handle(self):
Exemple #8
0
def run(args, config_file, config_name):
    service = Service(config_file=config_file)
    log.setup(service.get('log_file'))
    service.run(args)
class Service(server.Simple):

    name = "geventserver"

    def before_jail(self, args):
        from gevent.server import StreamServer

        self.host = self.config.get("geventserver.host", "0.0.0.0")
        self.ports = (int(x) for x in self.config["geventserver.ports"].split())
        log.info("Listening ports %r" % self.ports)

        self.server = None  # this gets the last one to do a forever on

        for port in self.ports:
            self.server = StreamServer((self.host, port), handle)
            self.server.start()

    def start(self, args):
        self.server.serve_forever()

    def shutdown(self, signal):
        log.info("Shutting down now signal: %d" % signal)


if __name__ == "__main__":

    log.setup("/tmp/geventserver.log")
    server = Service(config_file=os.getcwd() + "/examples/master.conf")
    server.run(sys.argv)
Exemple #10
0
 def main():
     """This will exit the daemon after 4 seconds."""
     log.setup('/tmp/test_daemonize_no_exit.log', force=True)
     for i in range(0, 4):
         log.info("I ran!")
         time.sleep(1)
Exemple #11
0
        self.server = None # this gets the last one to do a forever on

        for port in self.ports:
            self.server = StreamServer((self.host, port), handle)
            self.server.start()

    def start(self, args):
        self.server.serve_forever()

    def shutdown(self, signal):
        log.info("Shutting down now signal: %d" % signal)

if __name__ == "__main__":

    log.setup('/tmp/geventserver.log')
    server = Service(config_file=os.getcwd() + '/examples/master.conf')
    server.run(sys.argv)


########NEW FILE########
__FILENAME__ = thread_server
import threading
import SocketServer
import sys
from lust import log, server


class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
    allow_reuse_address = True
Exemple #12
0
 def callme():
     log.setup('/tmp/test_daemonize_no_exit.log')
     for i in range(0, 3):
         log.info("I ran!")
         time.sleep(1)
Exemple #13
0
import sys
from lust import log
from . import Service, Carbon
from tornado.ioloop import IOLoop

if __name__ == "__main__":
    if '--debug' in sys.argv:
        server = Carbon()
        server.listen(2003)
        IOLoop.instance().start()

    else:
        log.setup('/tmp/carbon.log')
        server = Service()
        server.run(sys.argv)
import sys
from lust import log
from . import Service, Carbon
from tornado.ioloop import IOLoop

if __name__ == "__main__":
    if '--debug' in sys.argv:
        server =Carbon()
        server.listen(2003)
        IOLoop.instance().start()

    else:
        log.setup('/tmp/carbon.log')
        server = Service()
        server.run(sys.argv)
Exemple #15
0
def run(args, config_file, config_name):
    service = Service(config_file=config_file)
    log.setup(service.get('log_file'))
    service.run(args)