--- src/supervision/s6-svstat.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/supervision/s6-svstat.c b/src/supervision/s6-svstat.c index c986b8d..bc27c32 100644 --- a/src/supervision/s6-svstat.c +++ b/src/supervision/s6-svstat.c _at_@ -44,8 +44,20 @@ int main (int argc, char const *const *argv) isup = status.pid && !status.flagfinishing ; if (isup) { + struct stat st ; + unsigned int dirlen = str_len(*argv) ; + char fn[dirlen + 1 + sizeof(S6_SUPERVISE_READY_FILENAME)] ; + int ready ; + byte_copy(fn, dirlen, *argv) ; + byte_copy(fn + dirlen, 1, "/") ; + byte_copy(fn + dirlen + 1, sizeof(S6_SUPERVISE_READY_FILENAME), S6_SUPERVISE_READY_FILENAME) ; + if (stat(fn, &st) == -1) + if (errno != ENOENT) strerr_diefu2sys(111, "stat ", fn) ; + else ready = 0 ; + else ready = 1 ; buffer_putnoflush(buffer_1small,"up (pid ", 8) ; buffer_putnoflush(buffer_1small, fmt, uint_fmt(fmt, status.pid)) ; + if (ready) buffer_putnoflush(buffer_1small,"; ready", 7) ; buffer_putnoflush(buffer_1small, ") ", 2) ; } else buffer_putnoflush(buffer_1small, "down ", 5) ; -- 2.2.2Received on Sun Jan 18 2015 - 20:09:12 UTC
This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC