I am having trouble setting a service with logging using runit. Here is a brief overview of files and scripts I created according to runit's documentation and other resources I found on the internet:
I am using runit under debian, hence:
/etc/service/test
is a symbolic link to /etc/sv/test
.
Under /etc/sv/test
:
$ ls /etc/sv/test
finish log run
And /etc/sv/test/log
:
$ ls /etc/sv/test/log
config run
The run
script:
$ cat /etc/sv/test/run
#!/bin/sh
touch /tmp/pid
echo $$ > /tmp/pid
while true; do
date
sleep 3
done
The finish
script:
$ cat /etc/sv/test/finish
#!/bin/sh
kill `cat /tmp/pid`
And the log
script:
cat /etc/sv/test/log/run
#!/bin/sh
exec svlogd -t /var/log/test
The directory /var/log/test
exists, and the service runs.
$ sv s test
run: test: (pid 11547) 536s; down: log: 1s, normally up, want up
But the log directory is empty ... What am I missing? Where is all the logging information ?
update:
I also made sure all scripts are executable.
update 2:
It seems that the sv
fails to start the logging script for some reason!
$ sv s test
run: test: (pid 14612) 5s; down: log: 0s, normally up, want up
update 3:
If you want to stop the logging script you have to issue:
$ sv d test/log