From c8990384b34088273c3aa41c1f42d3bda87f51d3 Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Tue, 27 Jun 2017 23:28:10 -0700 Subject: [PATCH 1/2] Add confirm to launch --- src/tini.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tini.c b/src/tini.c index d0a02e5..69e0bea 100644 --- a/src/tini.c +++ b/src/tini.c @@ -611,6 +611,12 @@ void maybe_unix_cb() { goto error; } + PRINT_INFO("Waiting to receive message from titus-executor before launching\n"); + if (recv(sockfd, data, 1, 0) == -1) { + PRINT_FATAL("Unable to recv start message from socket: '%s'", strerror(errno)); + } + PRINT_INFO("Clear to start\n"); + return; error: From 6900453aa76f49feeff11451b0933c16b4f4831f Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Wed, 28 Jun 2017 06:01:28 -0700 Subject: [PATCH 2/2] Gate TITUS_CONFIRM to start behind env variable --- src/tini.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/tini.c b/src/tini.c index 69e0bea..a83966e 100644 --- a/src/tini.c +++ b/src/tini.c @@ -30,6 +30,7 @@ #define REDIRECT_STDERR "TITUS_REDIRECT_STDERR" #define REDIRECT_STDOUT "TITUS_REDIRECT_STDOUT" #define TITUS_CB_PATH "TITUS_UNIX_CB_PATH" +#define TITUS_CONFIRM "TITUS_CONFIRM" const char stdioattr[] = "user.stdio"; @@ -213,6 +214,7 @@ int spawn(const signal_configuration_t* const sigconf_ptr, char* const argv[], i unsetenv(REDIRECT_STDERR); unsetenv(REDIRECT_STDOUT); unsetenv(TITUS_CB_PATH); + unsetenv(TITUS_CONFIRM); execvp(argv[0], argv); @@ -611,11 +613,13 @@ void maybe_unix_cb() { goto error; } - PRINT_INFO("Waiting to receive message from titus-executor before launching\n"); - if (recv(sockfd, data, 1, 0) == -1) { - PRINT_FATAL("Unable to recv start message from socket: '%s'", strerror(errno)); + if (getenv(TITUS_CONFIRM)) { + PRINT_INFO("Waiting to receive message from titus-executor before launching\n"); + if (recv(sockfd, data, 1, 0) == -1) { + PRINT_FATAL("Unable to recv start message from socket: '%s'", strerror(errno)); + } + PRINT_INFO("Clear to start\n"); } - PRINT_INFO("Clear to start\n"); return;