On Thu, Feb 16, 2012 at 06:47:05PM -0500, Jiri B wrote:
> On Sat, Feb 04, 2012 at 09:27:53PM +0000, Stuart Henderson wrote:
> > as to the rc.d thing; the daemon *does* start and is running when
> > rc_check examines it, but exits afterwards.
>
> # cat -n /etc/rc.d/rc.subr | sed -n '117,129p'
> 117 while true; do # no real loop, only needed to break
> 118 if type rc_pre >/dev/null; then
> 119 rc_do rc_pre || break
> 120 fi
> 121 # XXX only checks the status of the return
> code,
> 122 # and _not_ that the daemon is actually
> running
> 123 rc_do rc_start || break
> 124 if [ -n "${_bg}" ]; then
> 125 sleep 1
> 126 rc_do rc_wait start || break
> 127 fi
> 128 rc_do rc_write_runfile
> 129 rc_exit ok
>
> Not true, there's no rc_check at all. Any idea what's the logic behind?
>
> Reporting 'ok' has no real sense. I understand that my own problem was
> configuration, true, but having no check and just echoing 'ok' is strange
> to me.
It is impossible to report whether start was OK in a _timely_ fashion and
without false positive.
Some daemons can run for like 20 or 30 seconds spawning stuffs, making
checks... then exiting because there is in fact a problem.
See comments line 121 and 122. "ok" means the daemon was started and return
code was ok.
--
Antoine