#!/usr/bin/env python
import os
import sys
import time
from VMAgent.VMAgent import vm_agent_run

def daemon(func):
    """
    :param func:
    :return:
    """
    def _daemon():
        try:
            pid = os.fork()
            if pid > 0:
                sys.exit(0)
        except OSError as error:
            sys.exit(1)

        os.chdir('/')
        os.umask(0)
        os.setsid()

        try:
            pid = os.fork()
            if pid > 0:
                sys.exit(0)
        except OSError as error:
            sys.exit(1)

        pid = str(os.getpid())
        file("/var/run/VMAgent.pid", 'w+').write("%s\n" % pid)

        func()

    return _daemon


@daemon
def main():
    vm_agent_run()

if __name__ == '__main__':
    main()

