I currently have this log/run script as part of a runit service:
#!/bin/sh
set -e
exec svlogd -tt ./main
If I "tail -f log/main/current", I don't see the service output written in "real time." It seems to only dump the stdout in 4K increments. So if the service is used lightly, I can't see the most recent log data, unless I actually do an 'sv restart' on the service, in which case all data is written to the logs before the service is restarted.
I've played around with the "-l" and "-b" arguments, but these did not have any effect (and I'm not even sure it matters at this point).