rcNG script problems

Jarrod Martin jmartin37 at speakeasy.net
Tue Jun 14 22:12:30 GMT 2005


Chad Leigh -- Shire.Net LLC wrote:

>
> On Jun 14, 2005, at 1:39 PM, JM wrote:
>
>> Kirk Strauser wrote:
>>
>>
>>> On Tuesday 14 June 2005 12:07, JM wrote:
>>>
>>>
>>>> i've written an rcNG script but i'm having some issues.
>>>>
>>>>
>>>
>>> Step one: set rc_debug="YES" in /etc/rc.conf to see what's  actually 
>>> happening when you attempt to run your script.  That  seems to 
>>> uncover about 95% of the problems I've had.
>>>
>>>
>> turned on the option rc_debug="YES" and ran 'dmesg -a'... the  script 
>> doesn't even show up in the list anywhere.  are we not  supposed to 
>> be able to write custom rcNG scripts?  is there  something i'm 
>> overlooking where i need to register httpd_start in  the rc stuff?  
>> here's my newbie impression of how rc works:
>> - rc i run by init
>> - rc runs rcorder on all script directories.
>> - rc reads rc.conf and runs all scripts found by rcorder
>> rcorder recognizes the script i wrote without any errors... yet  when 
>> i boot the system, there is no "checkyesno" for httpd_start.   
>> there's nothing that references the script at all... WHY? >.<
>>
>> why did FreeBSD have to adopt this standard anyhow?  it seems  
>> unnecessarily complicated to write custom scripts now.
>
>
>
> Where does your script live?  You can use rcNG style scripts in /usr/ 
> local/etc  but they must end in .sh and are done in lexographic order  
> without  the rcorder and stuff (unless you write your own ueber- 
> script to do it)
>
> I battled this for a long while before I figured out the /usr/local/ 
> etc does not get full rcNG support
>
> Chad
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to 
> "freebsd-questions-unsubscribe at freebsd.org"

yea i've figured it out.  this really should be better documented 
though... i'll be sending all the info to the documentation mailing 
list.  here's the proper way to do it.  the filename is 'httpd_start.sh' 
with 555 mode.  rc scripts, both rcNG and the old *.sh styles must have 
the .sh extension to be recognized (source: bsdforums.org).  the script 
was placed in '/usr/local/etc/rc.d'.  and here is the code:
[code]
#!/bin/sh

#
# PROVIDE: httpd_start
# REQUIRE: LOGIN

. /etc/rc.subr

name="httpd_start"
rcvar=`set_rcvar`
command="/var/www/bin/apachectl"
args="start"

start_cmd="${command} ${args}"
stop_cmd="/var/www/bin/apachectl stop"

httpd_start_enable=${httpd_start_enable-"NO"}
httpd_start_flags=${httpd_start_flags-""}

load_rc_config $name
run_rc_command "$1"
[/code]

the line 'httpd_start_enable="YES"' was added to rc.conf and this fixed everything.



More information about the freebsd-rc mailing list