3 ÐéÄâµÄ½Å±¾

¡¡¡¡ÏÂÃæµÄ½Å±¾ÊÇÓÃÀ´ÔÚÿ´ÎϵͳÆô¶¯Ê±·¢³öÒ»¸öÐÅÏ¢£º

#!/bin/sh(1)

. /etc/rc.subr(2)

name="dummy"(3)
start_cmd="${name}_start"(4)
stop_cmd=":"(5)

dummy_start()(6)
{
	echo "Nothing started."
}

load_rc_config $name(7)
run_rc_command "$1"(8)

¡¡¡¡ÐèҪעÒâµÄÊÇ£º

(1)
Ò»¸ö½âÊÍÐԵĽű¾Ó¦¸ÃÒÔÒ»ÐÐħ»ÃµÄ ¡°shebang¡± ÐпªÍ·¡£ ¸ÃÐÐÖ¸¶¨Á˽ű¾µÄ½âÎö³ÌÐò¡£ÓÉÓÚ shebang ÐеÄ×÷Ó㬠¼ÙÈçÔÙÓпÉÖ´ÐÐλµÄÉèÖ㬠½Å±¾¾ÍÄÜÏóÒ»¸ö¶þ½øÖƳÌÐòÒ»Ñù±»¾«È·µØµ÷ÓÃÖ´ÐС£ £¨Çë²Î¿¼ chmod(1)¡££© ÀýÈ磬 Ò»¸öϵͳ¹ÜÀíÔ±¿ÉÒÔ´ÓÃüÁîÐÐÊÖ¶¯ÔËÐÐÎÒÃǵĽű¾£º
# /etc/rc.d/dummy start

×¢Òâ: ΪÁËʹ rc.d ¿ò¼ÜÕýÈ·µØ¹ÜÀí½Å±¾£¬ ËüµÄ½Å±¾ÐèÒªÓà sh(1) ÓïÑÔ±àд¡£ Èç¹ûÄãµÄij¸ö·þÎñ»ò port Ì×¼þʹÓÃÁ˶þ½øÖÆ¿ØÖƳÌÐò»òÊÇÓÃÆäËüÓïÑÔ±àдµÄÀý³Ì£¬ Ç뽫Æä×é¼þ°²×°µ½ /usr/sbin£¨Ïà¶ÔÓÚϵͳ£© »ò /usr/local/sbin£¨Ïà¶ÔÓÚports£©£¬ È»ºó´ÓºÏÊ浀 rc.d Ŀ¼µÄij¸ö sh(1) ½Å±¾µ÷ÓÃËü¡£

Ìáʾ: Èç¹ûÄãÏëÖªµÀΪʲô rc.d ½Å±¾±ØÐëÓà sh(1) ÓïÑÔ±àдµÄϸ½Ú£¬ÏÈ¿´Ï /etc/rc ÊÇÈçºÎÒÀ¿¿ run_rc_script µ÷ÓÃËüÃÇ£¬ È»ºóÔÙȥѧϰ /etc/rc.subr Ï run_rc_script µÄÏà¹ØÊµÏÖ¡£

(2)
ÔÚ /etc/rc.subr Ï£¬ ÓÐÐí¶à¶¨Òå¹ýµÄ sh(1) º¯Êý¿É¹©Ã¿¸ö rc.d ½Å±¾Ê¹Óá£ÕâЩº¯ÊýÔÚ rc.subr(8) Öж¼ÓÐ˵Ã÷¡£¾¡¹ÜÀíÂÛÉÏ¿ÉÒÔÍêÈ«²»Ê¹Óà rc.subr(8) À´±àдһ¸ö rc.d ½Å±¾£¬µ«ËüµÄº¯ÊýÒѾ­Ö¤Ã÷ÁËËüÕæµÄºÜ·½±ã£¬ ²¢ÇÒÄÜʹÈÎÎñ¸ü¼ÓµÄ¼òµ¥¡£ËùÒÔËùÓÐÈËÔÚ±àд rc.d ½Å±¾Ê±¶¼»áÇóÖúÓÚ rc.subr(8) Ò²²»×ãÎªÆæÁË¡£µ±È»ÎÒÃÇÒ²²»ÀýÍâ¡£

Ò»¸ö rc.d ½Å±¾ÔÚÆäµ÷Óà rc.subr(8) º¯Êý֮ǰ±ØÐëÏÈ ¡°source¡± /etc/rc.subr£¨Óà ¡°.¡±½«Æä°üº¬½øÈ¥£©£¬ ¶øÊ¹ sh(1) ³ÌÐòÓлú»áÀ´»ñϤÄÇЩº¯Êý¡£ Ê×Ñ¡·ç¸ñÊÇÔڽű¾µÄ×ʼ source /etc/rc.subr Îļþ¡£

×¢Òâ: ijЩÓÐÓõÄÓëÁªÍøÓйصĺ¯ÊýÓÉÁíÒ»¸ö±»°üº¬½øÀ´µÄÎļþÌṩ£¬ /etc/network.subr Îļþ¡£

(3)
Ç¿ÖÆµÄ±äÁ¿ name Ö¸¶¨ÎÒÃǽű¾µÄÃû×Ö¡£ ÕâÊÇ rc.subr(8) ËùÇ¿µ÷µÄ¡£Ò²¾ÍÊÇ£¬ ÿ¸ö rc.d ½Å±¾ÔÚµ÷Óà rc.subr(8) µÄº¯Êý֮ǰ±ØÐëÉèÖà name ±äÁ¿¡£

ÏÖÔÚÊÇʱºòÀ´ÎªÎÒÃǵĽű¾Ò»´ÎÐÔÑ¡ÔñÒ»¸ö¶ÀÒ»ÎÞ¶þµÄÃû×ÖÁË¡£ ÔÚ±àдÕâ¸ö½Å±¾µÄʱÎÒÃǽ«ÔÚÐí¶àµØ·½Óõ½Ëü¡£ÔÚ¿ªÊ¼Ö®Ç°£¬ ÎÒÃÇÀ´¸ø½Å±¾ÎļþҲȡ¸öÏàͬµÄÃû×Ö¡£

×¢Òâ: µ±Ç°µÄ rc.d ½Å±¾·ç¸ñÊǰÑÖµ·ÅÔÚË«ÒýºÅÖÐÀ´¸ø±äÁ¿¸³Öµ¡£ Çë¼ÇסÕâÖ»ÊǸö·ç¸ñÎÊÌ⣬¿ÉÄܲ¢²»×ÜÊÇÕâÑù¡£ Äã¿ÉÒÔÔÚÖ»ÊǼòµ¥µÄ²¢²»°üÀ¨ sh(1) Ôª×Ö·ûµÄ´Ê¾äÖзÅÐĵØÊ¡ÂÔµôÒýºÅ£¬ ¶øÔÚijЩÇé¿öÏÂÄ㽫ÐèҪʹÓõ¥ÒýºÅÒÔ·ÀÖ¹ sh(1) ¶ÔÈκεıäÁ¿µÄ½âÊÍ¡£ ³ÌÐòÔ±ÊÇ¿ÉÒÔÁéÇɵØÓÉ·ç¸ñ¹ßÀý»ñϤÆäÓï·¨ÒÔ¼°Ê¹Óõġ£

(4)
rc.subr(8) ±³ºóÖ÷ÒªµÄ¹¹Ë¼ÊÇ rc.d ½Å±¾Ìṩ´¦Àí³ÌÐò£¬»òÕß·½·¨£¬À´Èà rc.subr(8) µ÷Óá£ÌرðÊÇ£¬start£¬ stop£¬ÒÔ¼°ÆäËüµÄ rc.d ½Å±¾²ÎÊý¶¼ÊÇÕâÑù±»´¦ÀíµÄ¡£·½·¨ÊÇ´æ´¢ÔÚÒ»¸öÒÔ argument_cmd ÐÎʽÃüÃûµÄ±äÁ¿ÖÐµÄ sh(1) ±í´ïʽ£¬¸Ã argument ¶ÔӦ׎ű¾ÃüÁîÐÐÖÐËùÌØ±ðÖ¸¶¨µÄ²ÎÊý¡£ÎÒÃÇÉԺ󽫿´µ½ rc.subr(8) ÊÇÈçºÎΪ±ê×¼²ÎÊýÌṩĬÈÏ·½·¨µÄ¡£

×¢Òâ: ΪÁËÈà rc.d ÖеĴúÂë¸ü¼Óͳһ£¬ ³£¼ûµÄÊÇÔÚÈκÎÊʺϵĵط½¶¼Ê¹Óà ${name} ÐÎʽ¡£ ÕâÑùÒ»À´£¬¿ÉÒÔÇáËɵؽ«Ò»Ð©´úÂë´ÓÒ»¸ö½Å±¾¿½±´µ½ÁíÒ»¸öÖÐʹÓá£

(5)
ÎÒÃÇÓ¦½÷¼Ç rc.subr(8) Ϊ±ê×¼²ÎÊýÌṩÁËĬÈϵķ½·¨¡£ Òò´Ë£¬Èç¹ûÏ£ÍûËüʲô¶¼²»×öµÄ»°£¬ÎÒÃDZØÐëʹÓÃÎÞ²Ù×÷µÄ sh(1) ±í´ïʽÀ´¸Äд±ê×¼µÄ·½·¨¡£
(6)
±È½Ï¸´Ôӵķ½·¨Ö÷Ìå¿ÉÒÔÓú¯ÊýÀ´ÊµÏÖ¡£ ÔÚÄܹ»±£Ö¤º¯ÊýÃûÓÐÒâÒåµÄÇé¿öÏ£¬ÕâÊǸöºÜ²»´íµÄÏë·¨¡£

ÖØÒª: Ç¿ÁÒÍÆ¼ö¸øÎÒÃǽű¾ÖÐËù¶¨ÒåµÄËùÓк¯ÊýÃû¶¼Ìí¼ÓÀàËÆ ${name} ÕâÑùµÄǰ׺£¬ÒÔʹËüÃÇÓÀÔ¶²»»áºÍ rc.subr(8) »òÆäËü¹«Óðüº¬ÎļþÖеĺ¯Êý³åÍ»¡£

(7)
ÕâÊÇÔÚÇëÇó rc.subr(8) ÔØÈë rc.conf(5) ±äÁ¿¡£ ¾¡¹ÜÎÒÃÇÕâ¸ö½Å±¾ÖÐʹÓõıäÁ¿²¢Ã»Óб»ÆäËüµØ·½Ê¹Ó㬵«ÓÉÓÚ rc.subr(8) ×ÔÉíËù¿ØÖÆ×ÅµÄ rc.conf(5) ±äÁ¿´æÔÚµÄÔ­Òò£¬ÈÔÈ»ÍÆ¼ö½Å±¾È¥×°ÔØ rc.conf(5)¡£
(8)
ͨ³£ÕâÊÇ rc.d ½Å±¾µÄ×îºóÒ»¸öÃüÁî¡£ Ëüµ÷Óà rc.subr(8) ÌåϵʹÓÃÎÒÃǽű¾ËùÌṩµÄ±äÁ¿ºÍ·½·¨À´Ö´ÐÐÏàÓ¦µÄÇëÇó¶¯×÷¡£

±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.