Date: Tue, 22 Jan 2013 16:29:25 +0100 From: Grzegorz Blach <magik@roorback.net> To: freebsd-ports@freebsd.org Subject: Re: How to launch services that do not fork to background using the rc infrastructure? Message-ID: <50FEB055.8080601@roorback.net> In-Reply-To: <50FEAE0D.5090505@diatel.upm.es> References: <50FEAE0D.5090505@diatel.upm.es>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01/22/2013 04:19 PM, Javier Martín Rueda wrote: > The typical and simple rc.d script to launch a service has, esentially, > the following: > > . /etc/rc.subr > > name=SERVICE > rcvar=SERVICE_enable > > command="/usr/local/sbin/PROGRAM" > > pidfile=/var/run/${name}.pid > SERVICE_enable=${SERVICE_enable:-"NO"} > > load_rc_config ${name} > run_rc_command "$1" > > One of the ports (net/spread4) runs a PROGRAM that does not fork to > background as a daemon and which does not have any command-line option > to ask it to do so. Therefore, the rc.d script never finishes, with > various consequences (system boot stops, no pid file generated...) > > I tried adding a "&" to SERVICE_flags to see if it made it run in the > background, but it didn't do the trick. I also quickly checked the > /etc/rc.subr code to see if there is any way of forcing a background > launch, but couldn't see anything. No luck searching the web or problem > reports either. > > So, my question is whether there is a non-obvious way of forcing a > program to start in background using the rc infrastructure. > Try command="/usr/sbin/daemon -c -f -p $pidfile PROGRAM" or some thing like this.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50FEB055.8080601>