From 7d24cfad2a564436950b5f42e74c0bd51481f5a9 Mon Sep 17 00:00:00 2001 From: kergoth Date: Thu, 08 May 2003 16:48:20 +0000 Subject: Start work on a new launcher. This commit is simply a minimal Opie QWS server. --- (limited to 'core/qws/main.cpp') diff --git a/core/qws/main.cpp b/core/qws/main.cpp new file mode 100644 index 0000000..bfed283 --- a/dev/null +++ b/core/qws/main.cpp @@ -0,0 +1,71 @@ +#include +#include + +#include "oqwsserver.h" + +#include +#include +#include +#include + +#include +#include + +#define APPNAME "op-qws" + +void toSyslog(QtMsgType type, const char *msg) +{ + int level = LOG_INFO; + switch (type) { + case QtDebugMsg: + level = LOG_DEBUG; + break; + case QtWarningMsg: + level = LOG_WARNING; + break; + case QtFatalMsg: + level = LOG_ERR; + break; + } + syslog (LOG_DAEMON | level, msg); +} + +int daemon_init(void) +{ + pid_t pid; + + if ((pid = fork()) < 0) + return(-1); + else if (pid != 0) + exit(0); + + setsid(); + + chdir("/"); + + umask(0); + + fclose(stdout); + fclose(stderr); + fclose(stdin); + + return(0); +} + +int main( int argc, char ** argv ) +{ + while (argc > 1) { + if (strcmp(argv[--argc], "-d") == 0) { + // daemonize + openlog(APPNAME, 0, LOG_DAEMON); + qInstallMsgHandler(toSyslog); + if (daemon_init() != 0) { + fprintf(stderr, "%s: Error: Unable to daemonize\n", APPNAME); + return 1; + } + } + } + + OQWSServer a(argc, argv, QApplication::GuiServer); + return a.exec(); +} -- cgit v0.9.0.2