Exemple #1
0
def mainWithMovedFromCounter(movedFrom):
    global movedFromCount
    si = singleinstance("/tmp/archivematicaMCPTransferDPID")
    if si.alreadyrunning():
        print >>sys.stderr, "Another instance is already running. Killing PID:", si.pid
        si.kill()
    movedFromCount = movedFrom
    main()
    databaseInterface.reconnect()
    debugMonitor()
    'root': {
        'handlers': ['logfile'],
        'level': 'INFO',
    }
}

if __name__ == '__main__':
    logging.config.dictConfig(LOGGING_CONFIG)
    logger = logging.getLogger("archivematica.mcp.server")

    # Replace exception handler with one that logs exceptions
    sys.excepthook = _except_hook_log_everything

    signal.signal(signal.SIGINT, signal_handler)
    signal.signal(signal.SIGTERM, signal_handler)
    si = singleinstance(config.get('MCPServer', "singleInstancePIDFile"))
    if si.alreadyrunning():
        logger.warning('Another instance is already running. Killing PID %s', si.pid)
        si.kill()

    logger.info('This PID: %s', si.pid)

    import getpass
    logger.info('User: %s', getpass.getuser())
    os.setuid(getpwnam('archivematica').pw_uid)

    t = threading.Thread(target=debugMonitor)
    t.daemon = True
    t.start()

    t = threading.Thread(target=flushOutputs)
def cleanupOldDbEntriesOnNewRun():
    sql = """DELETE FROM Jobs WHERE Jobs.currentStep = 'Awaiting decision';"""
    databaseInterface.runSQL(sql)
    
    sql = """UPDATE Jobs SET currentStep='Failed' WHERE currentStep='Executing command(s)';"""
    databaseInterface.runSQL(sql)
    
    sql = """UPDATE Tasks SET exitCode=-1, stdError='MCP shut down while processing.' WHERE exitCode IS NULL;"""
    databaseInterface.runSQL(sql)
    
    

if __name__ == '__main__':
    signal.signal(signal.SIGINT, signal_handler)
    signal.signal(signal.SIGTERM, signal_handler)
    si = singleinstance(config.get('MCPServer', "singleInstancePIDFile"))
    if si.alreadyrunning():
        print >>sys.stderr, "Another instance is already running. Killing PID:", si.pid
        si.kill()
    elif False: #testing single instance stuff
        while 1:
            print "psudo run"
            time.sleep(3)
    print "This PID: ", si.pid

    import getpass
    print "user: ", getpass.getuser()
    os.setuid(333)

    t = threading.Thread(target=debugMonitor)
    t.daemon = True