Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65f7080c authored by Yabin Cui's avatar Yabin Cui Committed by Josh Gao
Browse files

adb: setsid() for adb host server.

To create a daemon for adb host server, we should call setsid()
for the daemon process. However, previously we call setsid() for
the adb client process, which results in nothing but EPERM error.

Bug: 26982628
Change-Id: I2763ae3d5a243706927d7ef6af5095138c0ce2d8
(cherry picked from commit 6bf323b9)
parent 9ad736a6
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -883,8 +883,6 @@ int launch_server(int server_port)
            fprintf(stderr, "ADB server didn't ACK\n" );
            return -1;
        }

        setsid();
    }
#endif /* !defined(_WIN32) */
    return 0;
+6 −4
Original line number Diff line number Diff line
@@ -127,10 +127,12 @@ int adb_server_main(int is_daemon, int server_port, int ack_reply_fd) {
        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();
        // Start a new session for the daemon. 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.
        if (setsid() == -1) {
            fatal("setsid() failed: %s", strerror(errno));
        }
#endif

        // Any error output written to stderr now goes to adb.log. We could