diff options
-rw-r--r-- | client/main.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/client/main.cpp b/client/main.cpp index b7b30c5..6397c52 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -21,6 +21,7 @@ #include <signal.h> #include <stdio.h> #include <stdlib.h> +#include <unistd.h> // We only build the affinity WAR code for Linux. #if defined(__linux__) @@ -125,6 +126,13 @@ int adb_server_main(int is_daemon, int server_port, int ack_reply_fd) { close_stdin(); setup_daemon_logging(); +#if !defined(_WIN32) + // Set the process group so that ctrl-c in the spawning process doesn't kill us. + // Do this here instead of after the fork so that a ctrl-c between the "starting server" and + // "done starting server" messages gets a chance to terminate the server. + setpgrp(); +#endif + // Any error output written to stderr now goes to adb.log. We could // keep around a copy of the stderr fd and use that to write any errors // encountered by the following code, but that is probably overkill. |