Charlie Brady <charlieb-supervision <at> budge.apana.org.au> writes:

>
> Yes, that's what the "for each" means
>
>
> > 4) Is there a more detailed description of customised control somewhere?
>
> I think the man page of runsv is complete and accurate. What do you think
> is missing? The source code might help you if you wish to learn more or to
> confirm what you read in the man page.


Heh, some of my questions might seem dumb but I have read ALL the docs many
times over. I have found the documentation to be 100% complete. However
sometimes it can be difficult to interpret for all situations (or the particular
situation that is in my head :). For example in the above documentation example
it might be better to say that the examples given are special cases or that they
are examples that apply to all the options. Perhaps also to expand on the
description and to describe the exit codes (even if it is repeated from elsewhere).


> So you have to fix the service, or do something other than send a term
> signal to terminate the service.

Regarding the t script, I used this :

[ -r ../supervise/pid ] && PID=`cat ../supervise/pid` && kill "$PID"

To term the the process but I think the other methods (setting exit codes etc)
require less processing so I'll switch to those.

OK back to the bluetooth example. I had put the post start tasks in the check
script. I found that they were not being run when I rebooted the machine but
were being run if I did anything from the command line. I guess this is because
when runsvdir starts the service it just issues an up command (no check script
is run).

I like the idea of the bluetooth-postinit service but it breaks the
compatibiltiy with init that I need. Runit services need to exactly mirror what
fedora init looks like and be as self contained as an init script. I need this
mainly so that I can switch between init and runit services through a (yet to be
written) service management gui. It's a shame that runsvdir can't be told to
send a 'start' command instead of an up command. I want to keep things as simple
as possible so that other people might choose to write runit services as well as
an init script.

I really appreciate you guys taking the time to answer my questions especially
as it is the holiday period.

I have one last issue that I see only occasionally. I have every init daemon on
my laptop using runit. They are all started by runsvdir/runsvchdir. Very
occasionally some critical service does not start up during machine boot with
the error 'runsv not started'. I check for the existence of the service
directory before starting the service. I think runsvdir has not got to that
particular directory due to delays caused by the i/o frenzy during startup and
the fact that I do quite a lot of script processing (relatively) before starting
a service. This has become quite a big issue for me as I am attempting to get
some kind of LSB compatibility in my setup. So if a 'required-start' dependancy
fails to start I have to shut it down. Right now I am going to deal with that
issue by adding a 'sleep' and retrying if this error occurs. Is there a better
way to avoid this issue?

Thanks
Rehan