Beispiel #1
0
BOOL
svcReport(DWORD currentState, DWORD exitCode, DWORD checkPoint, DWORD waitHint)
{
    BOOL result;

    /* Disable control requests while starting */

    if (currentState == SERVICE_START_PENDING)
    {
	SvcStatus.dwControlsAccepted = 0;
    }
    else
    {
	SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP |
				       SERVICE_ACCEPT_PAUSE_CONTINUE;
    }

    SvcStatus.dwCurrentState = currentState;
    SvcStatus.dwWin32ExitCode = exitCode;
    SvcStatus.dwCheckPoint = checkPoint;
    SvcStatus.dwWaitHint = waitHint;

    /* Make the report */

    if (!(result = SetServiceStatus(SvcStatusHandle, &SvcStatus)))
    {
	/* If there is an error then bail out */
	svcStop("SetServiceStatus failed!");
    }

    return result;
}
Beispiel #2
0
int qdbRun(int argc, char **argv) {

    eprintf("\n");
    eprintf("  ___                  _   ____  ____\n");
    eprintf(" / _ \\ _   _  ___  ___| |_|  _ \\| __ )\n");
    eprintf("| | | | | | |/ _ \\/ __| __| | | |  _ \\\n");
    eprintf("| |_| | |_| |  __/\\__ \\ |_| |_| | |_) |\n");
    eprintf(" \\__\\_\\\\__,_|\\___||___/\\__|____/|____/\n");
    eprintf("                       www.questdb.org\n\n");

    CONFIG config;
    initAndParseConfig(argc, argv, &config);

    int rtn = 55;

    if (config.errorCode == ECONFIG_OK) {
        switch (config.command) {
            case CMD_START:
                rtn = svcStart(&config);
                break;

            case CMD_STOP:
                rtn = svcStop(&config);
                break;

            case CMD_STATUS:
                rtn = svcStatus(&config);
                break;

            case CMD_INSTALL:
                rtn = svcInstall(&config);
                break;

            case CMD_REMOVE:
                rtn = svcRemove(&config);
                break;

            case CMD_SERVICE:
                qdbDispatchService(&config);
                rtn = 0;
                break;

            default:
                rtn = qdbConsole(&config);
                break;
        }
    } else {
        logConfigError(&config);
        eprintf("Usage: %s [start|stop|status|install|remove] [-d dir] [-f] [-j JAVA_HOME] [-t tag]", argv[0]);
    }

    freeConfig(&config);

    if (rtn == E_ACCESS_DENIED) {
        eprintf("ACCESS DENIED\n\nPlease try again as Administrator.");
    }

    return rtn;
}
Beispiel #3
0
VOID
svcRunNT(char *name)
{
    SERVICE_TABLE_ENTRY dispatchTable[] = {
        { TEXT(name), (LPSERVICE_MAIN_FUNCTION)svcMain },
        { NULL, NULL }
    };

    if (!StartServiceCtrlDispatcher(dispatchTable))
    {
        svcStop("StartServiceCtrlDispatcher failed");
    }
}