How to launch services that do not fork to background using the rc infrastructure?
Greg Larkin
glarkin at FreeBSD.org
Tue Jan 22 15:36:34 UTC 2013
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 1/22/13 10:29 AM, Grzegorz Blach wrote:
> 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.
>
Here's a full example of that in the ViewVC rc.d script:
http://svnweb.freebsd.org/ports/head/devel/viewvc/files/viewvc.in?revision=300896&view=markup
Hope it helps,
Greg
- --
Greg Larkin
http://www.FreeBSD.org/ - The Power To Serve
http://www.sourcehosting.net/ - Ready. Set. Code.
http://twitter.com/cpucycle/ - Follow you, follow me
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iEYEARECAAYFAlD+sf4ACgkQ0sRouByUApAdBgCfdwmbfCokv0Rxm50pTaqZkAkF
BGoAnjl27+rGvyV3DP4W5rsphL2dbZBd
=Vi59
-----END PGP SIGNATURE-----
More information about the freebsd-ports
mailing list