Commits on Feb 3, 2016
  1. Merge pull request #27 from fumiyas/rm-v-is-not-partable

    makemake: 'rm -v' is not portable
    committed Feb 2, 2016
  2. Merge pull request #28 from fumiyas/solaris10-sh

    rts.tests: Portablity fix for Solaris 10 /bin/sh
    committed Feb 2, 2016
Commits on May 4, 2015
  1. @fumiyas

    rts.tests: Portablity fix for Solaris 10 /bin/sh

    On Solaris 10 and older, rts.tests fails by the following
    Solaris /bin/sh specifications:
      * /bin/sh does not exit immediately on signals (SIGTERM and so on)
        if a foreground process is remained.
      * '!' is not a reserved word and has no special meaning
        (except in '[...]')
    fumiyas committed May 4, 2015
  2. @fumiyas
Commits on Nov 11, 2014
Commits on Sep 30, 2014
  1. svstat: Add "once" flag indicator to output

    Fixes #15
    committed Sep 30, 2014
  2. sleeper: Do a single atomic write when reporting received signals

    Problems with the test-suite: sleeper.c writes are not atomic when
    reporting received signals
    This issue is pretty consistent on FreeBSD - signal reports (writes) to
    stdout are intermingled - and makes the self-test-suite fail.
    Fixes #21
    committed Sep 30, 2014
Commits on Apr 1, 2014
  1. Bump version to 1.10

    committed Apr 1, 2014
  2. Bump copyright year to 2014

    committed Apr 1, 2014
  3. supervise: Check for "no-setsid" in the forkexecve function

    Push the repeated calculation of the existence of "no-setsid" into the
    one function that uses it.
    committed Mar 25, 2014
  4. supervise: Revert "when using setsid, signal the entire process group"

    This breaks services that rely on a master process doing a clean
    shutdown of the children before exiting.
    committed Apr 1, 2014
Commits on Mar 25, 2014
  1. Merge pull request #16 from acg/multiprocess-services

    make managing multiprocess services easier and safer
    committed Mar 25, 2014
Commits on Mar 24, 2014
  1. @acg

    disable process group signaling with `svc -=`.

    To explicitly send signals only to the process group leader of a service, even if the service uses setsid, use `svc -=`.
    To explicitly send signals to the entire process group, even if the service uses ./no-setsid, use `svc -+`.
    Otherwise, process group signalling is used iff the service is setsid.
    acg committed Mar 23, 2014
  2. @acg

    ensure clean service shutdown and clean ^C, ^Z behavior.

    When supervise(8) itself receives certain signals, they should be propagated to the service.
    When supervise(8) receives SIGTERM or SIGINT, propagate this to the supervised process by behaving as if `svc -dx` had been called. SIGTERM occurs during system shutdown. SIGINT can occur when svscan(8) is running in terminal foreground and gets ^C. In both cases, not propagating the signal to a setsid service will result in orphans that continue to run.
    When supervise(8) receives SIGTSTOP, for example because svscan(8) is running in terminal foreground and gets ^Z, behave as if `svc -p` had been called. Similarly, when supervise(8) receives SIGCONT, behave as if `svc -c` had been called. This ensures that setsid services stop and resume when running in foreground.
    acg committed Mar 23, 2014
  3. @acg

    when using setsid, signal the entire process group.

    Prior to this change, only the process leader of a service would be signalled by svc(8). For multiprocess services, this meant that sending SIGINT or SIGTERM would typically orphan processes. Better behavior: always signal the entire process group when a service is using setsid.
    acg committed Mar 23, 2014
  4. @acg

    disable setsid per-service with a ./no-setsid file.

    Before this change, each service always ran in a separate process group via setsid(2). For users that need the classic daemontools behavior instead, the existence of a file ./no-setsid in a service directory will disable this.
    acg committed Mar 23, 2014
Commits on Mar 21, 2014
  1. str: Use standard library replacements for str_diff and str_len

    Replacing str_chr and str_start efficiently is harder due to the
    differing calling conventions -- no easy way to do it without scanning
    the string twice for the failure case, in which case there is no gain.
    committed Mar 20, 2014
  2. tai64nlocal: Format all the numbers, then output

    This further improves the performance of tai64nlocal by a bit
    committed Mar 20, 2014
  3. tai64nlocal: Use buffer_copyline to copy out remainder of line

    This cuts CPU time used by tai64nlocal by 2-4x depending on line length
    committed Mar 20, 2014
  4. tai64n: Use buffer_copyline to speed up data copying

    Cuts time spent in the program by half.
    committed Mar 20, 2014
Commits on Mar 20, 2014
  1. str.h: Remove unused prototypes

    committed Mar 19, 2014