From 83853a80eb18238796154164f9ea776b0c167ab7 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 16 Jan 2015 01:36:48 +0000 Subject: - s6-svlisten and s6-svlisten1 - Synchronous s6-svc - version 2.0.2.0, rc --- doc/index.html | 2 + doc/s6-svc.html | 37 +++++++-- doc/s6-svlisten.html | 100 ++++++++++++++++++++++ doc/s6-svlisten1.html | 81 ++++++++++++++++++ package/deps.mak | 8 +- package/modes | 2 + package/targets.mak | 2 + src/libs6/s6_svc_main.c | 1 - src/pipe-tools/s6-ftrig-listen.c | 4 +- src/supervision/deps-exe/s6-svlisten | 5 ++ src/supervision/deps-exe/s6-svlisten1 | 4 + src/supervision/s6-svc.c | 91 +++++++++++++++++++- src/supervision/s6-svlisten.c | 152 ++++++++++++++++++++++++++++++++++ src/supervision/s6-svlisten1.c | 121 +++++++++++++++++++++++++++ src/supervision/s6-svwait.c | 14 ++-- 15 files changed, 601 insertions(+), 23 deletions(-) create mode 100644 doc/s6-svlisten.html create mode 100644 doc/s6-svlisten1.html create mode 100644 src/supervision/deps-exe/s6-svlisten create mode 100644 src/supervision/deps-exe/s6-svlisten1 create mode 100644 src/supervision/s6-svlisten.c create mode 100644 src/supervision/s6-svlisten1.c diff --git a/doc/index.html b/doc/index.html index 9e3dde3..5423e12 100644 --- a/doc/index.html +++ b/doc/index.html @@ -115,6 +115,8 @@ a user interface to control those processes and monitor service states.
  • The s6-svok program
  • The s6-svstat program
  • The s6-svwait program
  • +
  • The s6-svlisten1 program
  • +
  • The s6-svlisten program
  • The s6-notifywhenup program
  • diff --git a/doc/s6-svc.html b/doc/s6-svc.html index 606cc16..0ca3bd7 100644 --- a/doc/s6-svc.html +++ b/doc/s6-svc.html @@ -27,7 +27,7 @@ knowing their PIDs, and without using horrible hacks such as .pid files.

    Interface

    -     s6-svc [ -abqhkti12fFpcoduxO ] servicedir
    +     s6-svc [ -D | -U ] [ -t timeout ] [ -abqhkti12pcoduxO ] servicedir
     

    @@ -62,7 +62,17 @@ normally never be used on a working system.

  • -O : Once at most. Do not restart the supervised process when it dies. If it is down when the command is received, do not even start it.
  • -
  • -f-F : unused for now.
  • +
  • -t timeout : if the -D or +-U option has been given, -t specifies a timeout +(in milliseconds) after which s6-svc will exit 1 with an error message if +the service still hasn't reached the desired state. By default, the +timeout is 0, which means that s6-svc will block indefinitely.
  • +
  • -D : s6-svc will not exit until the service is down.
  • +
  • -U : s6-svc will not exit until the service is up and +ready as notified by the daemon itself. +Be careful to only use this command on services that send readiness +notifications and are managed by s6-notifywhenup, +else the command will never be successful.
  • Usage examples

    @@ -81,9 +91,15 @@ the process represented by the /service/sshd service directory - typically the sshd server.

    -
     s6-svc -d /service/ftpd 
    +
     s6-svc -Dd /service/ftpd 

    - Take down the ftpd server. + Take down the ftpd server and block until the process is really down. +

    + +
     s6-svc -Uu -t 5000 /service/ftpd 
    +

    + Bring up the ftpd server and block until it has sent notification that it +is ready. Exit 1 if it is still not ready after 5 seconds.

     s6-svc -a /service/httpd/log 
    @@ -94,11 +110,16 @@ process is s6-log, this triggers a log rotation.

    Internals

    -

    -s6-svc writes control commands into the servicedir/supervise/control +

    diff --git a/doc/s6-svlisten.html b/doc/s6-svlisten.html new file mode 100644 index 0000000..eeb0a91 --- /dev/null +++ b/doc/s6-svlisten.html @@ -0,0 +1,100 @@ + + + + + s6: the s6-svlisten program + + + + + + +

    +s6
    +Software
    +skarnet.org +

    + +

    The s6-svlisten program

    + +

    + s6-svlisten runs a program while listening on notifications from +a collection of supervised services, and blocks until they all go up, or down. +

    + +

    + s6-svlisten only waits for notifications; it never polls. +

    + +

    Interface

    + +

    + In an execline script: +

    + +
    +     s6-svlisten [ -U | -u | -d ] [ -a | -o ] [ -t timeout ] { servicedir servicedir... } prog...
    +
    + +

    + Outside of an execline script: +

    + +
    +     s6-svlisten [ -U | -u | -d ] [ -a | -o ] [ -t timeout ] servicedir servicedir... "" prog...
    +
    + +