rc scripts: how to start a process that doesn't daemonize itself?

Marco Molteni molter at tin.it
Wed Oct 19 12:36:41 PDT 2005


On Wed, 19 Oct 2005 10:36:55 -0500
Dan Nelson <dnelson at allantgroup.com> wrote:

> In the last episode (Oct 19), Marco Molteni said:
> > I have a program that I would like to control via a rc script,
> > say /usr/local/etc/rc.d/myprog
> > 
> > problem is this program needs to be put explicitly in background.
> > 
> > I was playing with things like
> > 
> > command="/usr/sbin/daemon /usr/local/bin/myprog"
> > 
> > but this obviously works only for the start case.
> > 
> > Should I just override start() completely or is there a
> > common way to do it? I don't think I can simply pass a "&"
> > somewhere...
> 
> Try putting the "&" in command_args; that way it'll only be used
> during startup.  I do that in some of my homegrown rc.d scripts.  A
> (probably cleaner) way is to set 
> 
> start_cmd="/usr/sbin/daemon /usr/local/bin/myprog"

thanks to you and the others posters for the & trick.

It works, but as you say it smells hackish. For one, it doesn't
detach from the controlling tty. Not a big deal when run from
init I think, but it may make a difference when run multiuser
from a terminal (say myprog forcestart).

anyway, better than nothing ;-)

thanks again
marco
-- 
He who receives an idea from me, receives instruction himself
without lessening mine; as he who lights his taper at mine,
receives light without darkening me. -- Thomas Jefferson


More information about the freebsd-hackers mailing list