fix: Show console on Windows for daemon -h and -f args
This commit is contained in:
parent
cc821f750d
commit
bd674f546b
2 changed files with 17 additions and 0 deletions
|
|
@ -162,9 +162,11 @@ DaemonApp::InitResult DaemonApp::init(IEventQueue *events, int argc, char **argv
|
||||||
string arg(argv[i]);
|
string arg(argv[i]);
|
||||||
|
|
||||||
if (arg == "-h" || arg == "--help") {
|
if (arg == "-h" || arg == "--help") {
|
||||||
|
showConsole();
|
||||||
showHelp(argc, argv);
|
showHelp(argc, argv);
|
||||||
return ShowHelp;
|
return ShowHelp;
|
||||||
} else if (arg == "-f" || arg == "--foreground") {
|
} else if (arg == "-f" || arg == "--foreground") {
|
||||||
|
showConsole();
|
||||||
m_foreground = true;
|
m_foreground = true;
|
||||||
}
|
}
|
||||||
#if SYSAPI_WIN32
|
#if SYSAPI_WIN32
|
||||||
|
|
@ -263,3 +265,16 @@ std::string DaemonApp::logFilename()
|
||||||
|
|
||||||
return logFilename;
|
return logFilename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DaemonApp::showConsole()
|
||||||
|
{
|
||||||
|
#if SYSAPI_WIN32
|
||||||
|
// The daemon bin is compiled using the Win32 subsystem which works best for Windows services,
|
||||||
|
// so when running as a foreground process we need to allocate a console (or we won't see output).
|
||||||
|
// It is important to do this inside the arg check loop so that we can attach console ahead
|
||||||
|
// of log output generated by handling other args.
|
||||||
|
AllocConsole();
|
||||||
|
freopen("CONOUT$", "w", stdout);
|
||||||
|
freopen("CONOUT$", "w", stderr);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,8 @@ private:
|
||||||
void handleError(const char *message);
|
void handleError(const char *message);
|
||||||
void handleIpcMessage(const Event &e, void *);
|
void handleIpcMessage(const Event &e, void *);
|
||||||
|
|
||||||
|
static void showConsole();
|
||||||
|
|
||||||
#if SYSAPI_WIN32
|
#if SYSAPI_WIN32
|
||||||
std::unique_ptr<MSWindowsWatchdog> m_watchdog;
|
std::unique_ptr<MSWindowsWatchdog> m_watchdog;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue