Charlie Brady | 19 Jun 20:07 2013

>2G file support for svlogd?

Has anyone built svlogd to handle large files?

If svlogd is set up for time based log rotation:


with a very verbose service, then we see:

nanosleep({3, 0}, 0xbf9a245c)           = 0
write(6, "rverCore.setThreadName: ( Renamed thread
to UspService-InternalServer-ServerMain\n", 100) = -1 EFBIG (File too
write(2, "svlogd: pausing: unable to write to current:
/var/log/mom-server: file too big\n", 79) = 79 it's trying to write, getting EFBIG, sleeping, trying to write etc...

Peter Hickman | 22 May 11:30 2013

Suddenly sv does not start, gives a timeout

One of our servers has started to have a problem with runit. Even after a
reboot we get this:

$ sv start ./service/unicorn/
timeout: down: ./service/unicorn/: 1s, normally up, want up

This has just started without (as far as we can tell) there being any
change to the server. I've even nuked the ./service/* directory so that it
will get rebuilt when the application is deployed (via capistrano - this is
a Rails app) but that does not seem to help.

The other 23 servers which are set up in the same way have no problem so I
am at a loss as to where to start looking.

Any idea of where I should look for clues?
eam | 21 May 01:52 2013

Default permissions on supervise/ok

I'd like to allow any user to access supervise/ok, in order to run
`sv stat`, but not to access supervise/control. My understanding is that
this is safe, as supervise/ok is a read-only interface. Is this accurate,
and is this a reasonable idea? Anything I should be warned about? Am I
overlooking anything important?

chmod 755 supervise
chmod 666 supervise/ok

Vallo Kallaste | 14 May 22:17 2013

s6-portable-utils-1.0.0 compile error


This seems to be corner case as I have never before set the
flag-usert, flag-usemon, flag-noipv6, flag-forcedevr flags for

exec ./compile s6-ln.c
exec ./load s6-ln -lrandom -lstdcrypto -lstddjb `cat socket.lib`
/package/prog/skalibs/library/libstddjb.a(taia_clockmon.o): In function `taia_clockmon':
taia_clockmon.c:(.text+0x22): undefined reference to `clock_gettime'
/package/prog/skalibs/library/libstddjb.a(taia_clockmon.o): In function `taia_clockmon_init':
taia_clockmon.c:(.text+0xce): undefined reference to `clock_gettime'
/package/prog/skalibs/library/libstddjb.a(sysclock_get.o): In function `sysclock_get':
sysclock_get.c:(.text+0x21): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[2]: *** [s6-ln] Error 1
make[2]: Leaving directory `/package/admin/s6-portable-utils-1.0.0/compile/skaembutils'
make[1]: *** [.done] Error 2
make[1]: Leaving directory `/package/admin/s6-portable-utils-1.0.0/compile/skaembutils'
make: *** [.done] Error 2



Peter Hickman | 7 May 11:30 2013

Installing on Centos

I've installed runit on a Centos 5.8 box thus

tar zxf runit-2.1.1.tar.gz
(cd admin/runit-2.1.1; ./package/install; ./package/install-man)

No problem with that (so far) but when I compare it to my Ubuntu 10.04
installation I seem to be missing things like

1) /etc/sv and /etc/service
2) When is ps ax it does not appear to be running anywhere...
3) The sv command only seems to be available to root, unlike on Ubunto
where other accounts can access it

Have I missed a step in the installation somewhere. Googling produces too
many results and not a lot of information.
Raymond Barlow | 30 Apr 21:43 2013

runit logging questions



* Do you need to create 2 run scripts (/etc/sv/myservice/run,
/etc/sv/myservice/log/run)? Or does the log/run supersede the myservice/run
* The directory specified in the log run script to svlogd (eg ./main)--does
this live in the log directory?
* Do I need to create the log directory or does the svlogd directory do
that for me
* Where does the log go? I've looked in this main directory, and it is
still empty.


Lee Hambley | 14 Mar 08:03 2013

Race Condition?

I'm using runit in cooperation with Monit, we are still using the init.d
scripts that shipped with Ubuntu 12.04 LTS, but using runit for all
application level processes. Monit also watches over a couple of the system
level scripts.

We're seeing something where Monit (I believe is to blame) is causing the

root <at> runitvm:~# ps aux | grep runsvdir | grep -v grep
> root      1079  0.0  0.0    188    32 ?        Ss   15:52   0:00 runsvdir
> -P /etc/service log:
> .........................................................................................................................................................................................................................runsv
> apache2: fatal: unable to setup filedescriptor for ./run: file descriptor
> not open?runsv apache2: fatal: unable to setup filedescriptor for ./run:
> file descriptor not open?

*runsv apache2: fatal: unable to setup filedescriptor for ./run: file
descriptor not open?*

I haven't been able to debug this, and the box only recovers when restarted
(reboot). There's a possible explanation here detailing a kind of race

An extract from the mailing list thread I linked: that at some point, your runsv ran through that code, but
> somehow managed to live and the services didn't die, i.e. another control
> message was sent and processed before the exit condition was reached, and
> runsv is still trying to supervise things - but runs into trouble with the
(Continue reading)

Laurent Bercot | 12 Feb 11:38 2013

[announce] s6-1.0.0

 As a part of a massive series of releases, s6-1.0.0 is out.

 This release fixes a very rare bug in s6-log. It also includes the
ucspilogd program (previously shipped as a standalone package). Most
importantly, it adds support for non-slashpackage installations, which
means that distributors may now install the binaries wherever they want.

 Bug-reports welcome.



Wayne Marshall | 14 Jan 11:52 2013

[announce] perp-2.07: persistent process supervision

Announcing the latest release of perp, a persistent process
supervisor and service management framework for un!x:

What's New:

 * not much!

 * PERP_SVPID and PERP_SVSECS defined for reset runscripts!

 * slightly bigger release number!

 * not much else!

Get your free copy now!!!




What the Heck?

perp is a persistent process supervisor and service management
(Continue reading)

Vallo Kallaste | 13 Dec 15:19 2012

s6-log taking 100% CPU


I have noticed that s6-log enters busyloop after failing to rotate
the log. Some data:

 * I don't have strace output at hand, but from memory it was
   infinite stream of identical poll() related lines.
 * s6-log runs as: s6-log -b s16777215 n25 S0 !xz -0q /var/service/nslcd/log
 * Happens only for service loggers missing the log/state file. Most
   service loggers do not have the log/state file, this is probably
   my mistake in some deployment script. 
 * There are following lines in s6-svscan log:

s6-log (processor child): fatal: unable to open_readb /var/service/nslcd/log/state: No such file or directory
s6-log: warning: processor failed in /var/service/nslcd/log

It seems that this is caused by my mistake but perhaps it could be
handled better?



Jorge Almeida | 14 Nov 20:01 2012


Trying to compile against dietlibc:

Making subsystem pipe-tools...
make[1]: Entering directory `/package/admin/s6-0.17/compile/pipe-tools'
exec ./gen-EXPORT > EXPORT-
./gen-Makefile > Makefile.real && make -f Makefile.real && : > .done
make[2]: Entering directory `/package/admin/s6-0.17/compile/pipe-tools'
exec ./compile s6-cleanfifodir.c
exec ./load s6-cleanfifodir -lftrigw -lstddjb
exec ./compile s6-ftrig-listen.c
s6-ftrig-listen.c:15:22: fatal error: execline.h: No such file or directory
compilation terminated.
make[2]: *** [s6-ftrig-listen.o] Error 1
make[2]: Leaving directory `/package/admin/s6-0.17/compile/pipe-tools'
make[1]: *** [.done] Error 2
make[1]: Leaving directory `/package/admin/s6-0.17/compile/pipe-tools'
make: *** [.done] Error 2

s6-0.16 compiles without problems, same computer, same conf-compile
contents, same skalibs (1.2.8), and same execline (1.1.6).


Jorge Almeida