Need help with rc.d script

Ernie Luzar luzar722 at gmail.com
Fri Nov 10 15:50:05 UTC 2017


As I review the different methods tried to make my simple sh script 
function using the rc.d framework seems to resulted in 2 different 
methods coming to light.

Method 1.
Use of the daemon command in the rc.d script. This is the method we 
ended up getting to work. It needed no special codding in the base 
script IE: ( ... ), &, or the creation and or population of the scripts 
running pid file.

Method 2.
The use of the rc.d framework defaults which we were never able to get 
working. Speculation about the base script needing special codding
IE: ( ... ), &, or the creation and or population of the scripts running 
pid file.

This method is used by most all the ports that use the rc.d framework.

So I ask the question, why could we NOT get method 2 working. I am of 
the opinion that both methods should have worked. Are we missing 
something so obvious that its staring us in the face and we can not see it.

The handbook rc.d section does not point out any difference in handling 
scripts or compiled programs, or anything about the pid file having to 
be manually manipulated. The result meaning from reading the handbook 
rc.d section is the rc.d framework is designed to automatically handle 
the pid file manipulation.

If this is really not ture, then the handbook rc.d section has very 
large hole in its documentation.

I believe we should continual working on getting method 2 working so we 
all learn how rc.d really works and if need be submit a update to the 
handbook rc.d documentation to give the reader a clearer picture of what 
needs to be done to use the rc.d framework for a sh script.

https://www.freebsd.org/doc/en_US.ISO8859-1/articles/rc-scripting/rcng-daemon.html 

This talks about setting the command_interpreter variable for 
executable scripts. I tested using the testloop rc.d script posted 
previously with  command_interpreter="/bin/sh" and a second time with 
command_interpreter="sh" and in both cases no pid file was created.

Our combined knowledge and experience has so far not been able to come 
up with a solution to use the default rc.d framework to start a normal 
executable sh script as a daemon without using the daemon command 
explicitly. I think it is time to draw on other people in the community 
who we may know who has more rc.d experience to assess us. If you have 
someone in mind please email this post to them so they can read the 
complete thread and hopefully come up with an answer.


Other reading I have done.
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/configtuning-rcd.html
https://www.freebsd.org/doc/en/books/porters-handbook/rc-scripts.html
https://www.freebsd.org/doc/en_US.ISO8859-1/articles/rc-scripting/
http://www.mewburn.net/luke/papers/rc.d.pdf




More information about the freebsd-questions mailing list