Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mxqd: add --daemonize
  • Loading branch information
mariux committed Dec 17, 2014
1 parent a8cd271 commit 50202a9
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions mxqd.c
Expand Up @@ -86,6 +86,7 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
char *arg_server_id = "main";
char *arg_mysql_default_group;
char *arg_mysql_default_file;
char arg_daemonize = 0;
int opt;
unsigned long threads_total = 1;
unsigned long memory_total = 2048;
Expand All @@ -96,6 +97,7 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
struct bee_option opts[] = {
BEE_OPTION_NO_ARG("help", 'h'),
BEE_OPTION_NO_ARG("version", 'V'),
BEE_OPTION_NO_ARG("daemonize", 1),
BEE_OPTION_REQUIRED_ARG("slots", 'j'),
BEE_OPTION_REQUIRED_ARG("memory", 'm'),
BEE_OPTION_REQUIRED_ARG("max-memory-per-slot", 'x'),
Expand Down Expand Up @@ -125,6 +127,10 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
}

switch (opt) {
case 1:
arg_daemonize = 1;
break;

case 'h':
case 'V':
printf("help/version\n");
Expand Down Expand Up @@ -185,7 +191,16 @@ int server_init(struct mxq_server *server, int argc, char *argv[])
}

if (!server->flock->locked) {
return -2;
fprintf(stderr, "MXQ Server '%s' on host '%s' is already running. Exiting.\n", server->server_id, server->hostname);
exit(2);
}

if (arg_daemonize) {
res = daemon(0, 0);
if (res == -1) {
perror("daemon(0,0)");
exit(EX_UNAVAILABLE);
}
}

server->slots = threads_total;;
Expand Down Expand Up @@ -1198,10 +1213,6 @@ int main(int argc, char *argv[])

res = server_init(&server, argc, argv);
if (res < 0) {
if (res == -2) {
MXQ_LOG_ERROR("MXQ Server '%s' on host '%s' is already running. Exiting.\n", server.server_id, server.hostname);
exit(2);
}
MXQ_LOG_ERROR("MXQ Server: Can't initialize server handle. Exiting.\n");
exit(1);
}
Expand Down

0 comments on commit 50202a9

Please sign in to comment.