void ResourceManager::List() const { Logger* logger = FrameWork::GetLogger(); logger->LogInfo("Loaded resources:"); ResourceMap::const_iterator it; for (it = mResources.begin(); it != mResources.end(); it++) logger->LogInfo("- %s", it->first); }
int CreateServiceSettingsAction::ExecuteAction(const Argz* az, const ServiceTaskSettings* baseSettings) { CString serviceCommand; CString logFile; { int ret = ServiceAction().GenerateServiceCommandLine(az, serviceCommand, logFile); if (ret != 0) return ret; } if (logFile.GetLength() > 0) { LOG.LogInfoFormat(L"Service log file is set to: %s", logFile); } SimpleCreateServiceSettings settings(baseSettings, serviceCommand); if (az->HasArgument(L"/runAsSystem")) { settings.setRunAsSystem(true); LOG.LogInfo(L"Installing service unser LOCAL_SYSTEM account"); } else { int ret = ParseUserSettings(az, &settings); if (ret != 0) return ret; LOG.LogInfoFormat(L"Installing service under %s (domain=%s) account", settings.getUserName(), settings.getDomain()); } settings.setAutostart(az->GetBooleanArgument(L"autostart", true) && az->GetBooleanArgument(KEY_AUTORUN, true)); return ExecuteAction(az, &settings, baseSettings); }
void ProcessInterruptTerminateHandler::InterruptProcess(PROCESS_INFORMATION& info) { //block from second call if (IsInterrupted()) return; LOG.LogInfo(L"Service process will be killed, exit code would be 42"); //TODO:implement kill process if (0 == TerminateProcess(info.hProcess, 42)) { LOG.LogWarnFormat(L"Failed to terminate service process. %s", LOG.GetLastError()); return; } //mark interrupt to the process was sent Interrupt(); }
DWORD ServiceEventPreShutdownHandler::HandleServiceEvent(ServiceEventContext* context, DWORD dwControl, DWORD dwEventType, LPVOID lpEventData) { LOG.LogInfo(L"System pre-shutdown notification received"); context->GetServiceTask()->CallStopSerive(); return 0; }