--- package/CHANGES | 1 + src/sv.c | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/package/CHANGES b/package/CHANGES index 5779ec3..c747f8a 100644 --- a/package/CHANGES +++ b/package/CHANGES _at_@ -1,5 +1,6 @@ 2.1.2 + * sv.c: properly format status command's output on failure cases. * runsv.c, sv.c: on exit, properly wait for log service to terminate. * man/runsv.8, man/sv.8: adapt. * sv.c: support optional LSB init script actions reload and diff --git a/src/sv.c b/src/sv.c index f3e7518..1afa3a3 100644 --- a/src/sv.c +++ b/src/sv.c _at_@ -42,6 +42,7 @@ unsigned int lsb; unsigned int verbose =0; unsigned long wait =7; unsigned int kll =0; +unsigned int islog =0; struct taia tstart, tnow, tdiff; struct tai tstatus; _at_@ -68,6 +69,7 @@ void fatal2(char *m1, char *m2) { void out(char *p, char *m1) { buffer_puts(buffer_1, p); buffer_puts(buffer_1, *service); + if (islog) buffer_puts(buffer_1, "/log"); buffer_puts(buffer_1, ": "); buffer_puts(buffer_1, m1); if (errno) { _at_@ -158,18 +160,20 @@ int status(char *unused) { rc =svstatus_get(); switch(rc) { case -1: if (lsb) done(4); case 0: return(0); } rc =svstatus_print(*service); + islog =1; if (chdir("log") == -1) { if (errno != error_noent) { - outs("; log: "); outs(WARN); - outs("unable to change to log service directory: "); - outs(error_str(errno)); + outs("; "); + warn("unable to change directory"); } + else outs("\n"); } - else - if (svstatus_get()) { - outs("; "); svstatus_print("log"); - } - flush("\n"); + else { + outs("; "); + if (svstatus_get()) { rc =svstatus_print("log"); outs("\n"); } + } + islog =0; + flush(""); if (lsb) switch(rc) { case 1: done(0); case 2: done(3); case 0: done(4); } return(rc); }Received on Fri Aug 01 2014 - 08:44:33 UTC
This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:18 UTC