--- svstat handles new and nonexistent directories test.sv: unable to open supervise/ok: file does not exist nonexistent: unable to chdir: file does not exist 0 --- svc handles new and nonexistent directories svc: warning: unable to control test.sv: file does not exist svc: warning: unable to chdir to nonexistent: file does not exist 0 --- svok handles new and nonexistent directories 100 svok: fatal: unable to chdir to nonexistent: file does not exist 111 --- supervise handles nonexistent directories supervise: fatal: unable to chdir to nonexistent: file does not exist 111 --- supervise starts, svok works, svstat works, svc -x works test.sv: down x seconds 0 0 test.sv: supervise not running 0 --- svc -ox works hi --- svstat works for up services .: up (pid x) x seconds, normally down --- svc -u works first second --- tai64n has the right format @xxxxxxxxxxxxxxxxxxxxxxxx ONE @xxxxxxxxxxxxxxxxxxxxxxxx TWO --- tai64nlocal handles non-@ lines correctly one two 0 --- softlimit insists on an argument softlimit: usage: softlimit [-a allbytes] [-c corebytes] [-d databytes] [-f filebytes] [-l lockbytes] [-m membytes] [-o openfiles] [-p processes] [-r residentbytes] [-s stackbytes] [-t cpusecs] child 100 --- softlimit complains if it cannot run program softlimit: fatal: unable to run ./nonexistent: file does not exist 111 --- softlimit -p0 still allows exec ./nonexistent 0 --- fghack insists on an argument fghack: usage: fghack child 100 --- fghack complains if it cannot run program fghack: fatal: unable to run ./nonexistent: file does not exist 111 --- fghack runs a program hi 0 --- pgrphack insists on an argument pgrphack: usage: pgrphack child 100 --- pgrphack complains if it cannot run program pgrphack: fatal: unable to run ./nonexistent: file does not exist 111 --- pgrphack runs a program ok 0 --- readproctitle insists on an argument 100 --- readproctitle insists on last argument being at least five bytes 100 --- multilog prints nothing with no actions 0 --- multilog e prints to stderr one two 0 --- multilog inserts newline after partial final line one two 0 --- multilog handles multiple actions one one two two 0 --- multilog handles wildcard - 0 --- multilog handles literal + one 0 --- multilog handles long lines for stderr 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 0 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789... 0 --- multilog handles status files 0 _1_two _997_ --- multilog t has the right format @xxxxxxxxxxxxxxxxxxxxxxxx ONE @xxxxxxxxxxxxxxxxxxxxxxxx TWO --- match handles literal string +one (one) -one () -one (on) -one (onf) -one (one*) -one (onetwo) --- match handles empty string + () - (x) --- match handles full-line wildcard +* () +* (x) +* (*) +* (one) --- match handles ending wildcard +one* (one) +one* (one*) +one* (onetwo) -one* () -one* (x) -one* (on) -one* (onf) --- match handles wildcard termination +* one ( one) +* one (x one) +* one (* one) +* one (xy one) -* one (one) -* one ( two) -* one ( one) -* one (xy one ) --- match handles multiple wildcards +* * one ( one) +* * one (x one) +* * one ( y one) +* * one (x y one) -* * one (one) -* * one ( one) -* * one ( one) --- envuidgid insists on two arguments envuidgid: usage: envuidgid account child 100 envuidgid: usage: envuidgid account child 100 --- envuidgid sets UID=0 for root 0 0 --- envuidgid complains if it cannot run program envuidgid: fatal: unable to run ./nonexistent: file does not exist 111 --- envdir requires arguments envdir: usage: envdir dir child 111 --- envdir complains if it cannot read directory envdir: fatal: unable to switch to directory env1: symbolic link loop 111 --- envdir complains if it cannot read file envdir: fatal: unable to read env1/Message: symbolic link loop 111 --- envdir adds variables This is a test. This is only a test. 0 --- envdir removes variables 0 --- setlock requires arguments setlock: usage: setlock [ -nNxX ] file program [ arg ... ] 100 --- setlock complains if it cannot create lock file setlock: fatal: unable to open nonexistent/lock: file does not exist 111 --- setlock -x exits quietly if it cannot create lock file 0 --- setlock creates lock file ok 0 --- setlock does not truncate lock file ok 0 --- setlock -n complains if file is already locked setlock: fatal: unable to lock lock: temporary failure 111 --- setlock -nx exits quietly if file is already locked two 0