4 ¿ÉÅäÖõÄÐéÄâ½Å±¾

¡¡¡¡ÏÖÔÚÎÒÃÇÀ´¸øÎÒÃǵÄÐéÄâ½Å±¾Ôö¼ÓһЩ¿ØÖƲÎÊý°É¡£ÕýÈçÄãËùÖª£¬ rc.d ½Å±¾ÊÇÓÉ rc.conf(5) Ëù¿ØÖƵġ£ ÐÒÔ˵ÄÊÇ£¬rc.subr(8) Òþ²ØÁËËùÓи´ÔÓ»¯µÄ¶«Î÷¡£ ÏÂÃæÕâ¸ö½Å±¾Ê¹Óà rc.conf(5) ͨ¹ý rc.subr(8) À´²é¿´ËüÊÇ·ñÔÚµÚÒ»¸öµØ·½±»ÆôÓ㬲¢»ñȡһÌõÐÅÏ¢ÔÚÆô¶¯Ê±ÏÔʾ¡£ ÊÂʵÉÏÕâÁ½¸öÈÎÎñÊÇÏ໥¶ÀÁ¢µÄ¡£Ò»·½Ã棬rc.d ½Å±¾ÒªÄܹ»Ö§³ÖÆô¶¯ºÍ½ûÓÃËüµÄ·þÎñ¡£ÁíÒ»·½Ã棬 rc.d ½Å±¾±ØÐëÄܾ߱¸ÅäÖÃÐÅÏ¢±äÁ¿¡£ ÎÒÃǽ«Í¨¹ýÏÂÃæÍ¬Ò»½Å±¾À´ÑÝʾÕâÁ½·½ÃæµÄÄÚÈÝ£º

#!/bin/sh

. /etc/rc.subr

name="dummy"
rcvar=`set_rcvar`(1)
start_cmd="${name}_start"
stop_cmd=":"

load_rc_config $name(2)
eval "${rcvar}=\${${rcvar}:-'NO'}"(3)
dummy_msg=${dummy_msg:-"Nothing started."}(4)

dummy_start()
{
        echo "$dummy_msg"(5)
}

run_rc_command "$1"

¡¡¡¡ÔÚÕâ¸öÑùÀýÖиıäÁËʲô£¿

(1)
±äÁ¿ rcvar Ö¸¶¨ÁË ON/OFF ¿ª¹Ø±äÁ¿µÄÃû×Ö¡£°üº¬À´×Ô rc.subr(8) ÖбäÁ¿ÃûÊÇΪÁ˵÷Óò»Í¬²Ù×÷ϵͳËù²ÉÓõIJ»Í¬¹æ¶¨µÄ set_rcvar¡£Ò²¾ÍÊÇ˵£¬FreeBSD ¼á³ÖʹÓà ${name}_enable Ñùʽ¶ø NetBSD µÄ rc.conf(5) ÖÐʹÓõÄÖ»ÊÇ ${name} ±äÁ¿µÄÐÎʽ¡£ÀýÈ磬ÎÒÃÇÔÚ FreeBSD ÖÐʹÓà dummy_enable À´¿ØÖÆÎÒÃǵĽű¾¶øÔÚ NetBSD ÖÐʹÓà dummy À´¿ØÖÆ¡£
(2)
ÏÖÔÚ load_rc_config ÔÚÈκΠrc.conf(5) ±äÁ¿±»·ÃÎÊ֮ǰ¾ÍÔڽű¾Öб»Ô¤Ïȵ÷Óá£

×¢Òâ: ¼ì²é rc.d ½Å±¾Ê±£¬ÇÐ¼Ç sh(1) »á°Ñº¯ÊýÑÓ³Ùµ½Æä±»µ÷ÓÃʱ²Å¶ÔÆäÖеıí´ïʽ½øÐÐÇóÖµÔËËã¡£ Òò´Ë¾¡¿ÉÄÜÍíµØÔÚ run_rc_command ֮ǰµ÷Óà load_rc_config£¬ ÒÔ¼°ÈÔÈ»·ÃÎÊ´Ó·½·¨º¯ÊýÊä³öµ½ run_rc_command µÄ rc.conf(5) ±äÁ¿²¢²»ÊÇÒ»¸ö´íÎó¡£ÕâÊÇÒòΪ·½·¨º¯Êý½«ÔÚ load_rc_config Ö®ºó£¬ ±»µ÷ÓÃµÄ run_rc_command µ÷Óá£

(3)
Èç¹û×ÔÉíÉèÖÃÁË rcvar£¬ µ«Ö¸Ê¾¿ª¹Ø±äÁ¿È´Î´±»ÉèÖã¬ÄÇô run_rc_command ½«·¢³öÒ»¸ö¾¯¸æ¡£Èç¹ûÄãµÄ rc.d ½Å±¾ÊÇΪ»ù±¾ÏµÍ³ËùÓõģ¬ÄãÓ¦µ±ÔÚ /etc/defaults/rc.conf Öиø¿ª¹Ø±äÁ¿Ìí¼ÓÒ»¸öĬÈϵÄÉèÖò¢½«Æä±ê×¢ÔÚ rc.conf(5) ÖС£ ·ñÔòµÄ»°ÄãµÄ½Å±¾Ó¦¸Ã¸ø¿ª¹Ø±äÁ¿Ìṩһ¸öĬÈÏÉèÖᣠ·¶ÀýÖÐÑÝʾÁËÒ»¸ö¿ÉÒÆÖ²½Ó½üÓÚºóÕßÇé¿öµÄ°¸Àý¡£

×¢Òâ: Äã¿ÉÒÔͨ¹ý½«¿ª¹Ø±äÁ¿ÉèÖÃΪ ON À´Ê¹ rc.subr(8) ÓÐЧ£¬ ʹÓà one »ò force Ϊ½Å±¾µÄ²ÎÊý¼Óǰ׺£¬Èç onestart »ò forcestop ÕâÑù£¬»áºöÂÔÆäµ±Ç°µÄÉèÖᣠÇÐ¼Ç force ÔÚÎÒÃÇÏÂÃæÒªÌáµ½µÄÇé¿öÏÂÓжîÍâµÄΣÏÕºó¹û£¬ÄǾÍÊǵ±Óà one ¸ÄдÁË ON/OFF ¿ª¹Ø±äÁ¿¡£ÀýÈ磬 ¼Ù¶¨ dummy_enable ÊÇ OFF µÄ£¬¶øÏÂÃæµÄÃüÁºöÂÔϵͳÉèÖöøÇ¿ÐÐÔËÐÐ start·½·¨£º

# /etc/rc.d/dummy onestart
(4)
ÏÖÔÚÆô¶¯Ê±ÏÔʾµÄÐÅÏ¢²»ÔÙÊÇÓ²±àÂëÔڽű¾ÖеÄÁË¡£ ËüÊÇÓÉÒ»¸öÃüÃûΪ dummy_msg µÄ rc.conf(5) ±äÁ¿ËùÖ¸¶¨µÄ¡£Õâ¾ÍÊÇ rc.conf(5) ±äÁ¿ÈçºÎÀ´¿ØÖÆ rc.d ½Å±¾µÄÒ»¸öСÀý×Ó¡£

ÖØÒª: ÎÒÃǵĽű¾Ëù¶ÀռʹÓõÄËùÓÐ rc.conf(5) ±äÁ¿Ãû£¬ ¶¼±ØÐë¾ßÓÐͬÑùµÄǰ׺£º${name}¡£ ÀýÈ磺dummy_mode£¬ dummy_state_file£¬µÈµÈ¡£

×¢Òâ: µ±¿ÉÒÔÄÚ²¿Ê¹ÓÃÒ»¸ö¼ò¶ÌµÄÃû×Öʱ£¬Èç msg ÕâÑù£¬ÎªÎÒÃǵĽű¾ËùÒý½øµÄÈ«²¿µÄ¹²ÓÃÃûÌí¼ÓΨһµÄǰ׺ ${name}£¬Äܹ»±ÜÃâÎÒÃÇÓë rc.subr(8) ÃüÃû¿Õ¼ä³åÍ»µÄ¿ÉÄÜ¡£

Ö»ÒªÒ»¸ö rc.conf(5) ±äÁ¿ÓëÆäÄÚ²¿µÈֵͬÊÇÏàͬµÄ£¬ ÎÒÃǾÍÄܹ»Ê¹ÓÃÒ»¸ö¸ü¼Ó¼æÈݵıí´ïʽÀ´ÉèÖÃĬÈÏÖµ£º

: ${dummy_msg:="Nothing started."}

¾¡¹ÜĿǰµÄ·ç¸ñÊÇʹÓÃÁ˸üÏêϸµÄÐÎʽ¡£

ͨ³££¬»ù±¾ÏµÍ³µÄ rc.d ½Å±¾²»ÐèҪΪËüÃÇµÄ rc.conf(5) ±äÁ¿ÌṩĬÈÏÖµ£¬ ÒòΪĬÈÏÖµÓ¦¸ÃÊÇÔÚ /etc/defaults/rc.conf ÉèÖùýÁË¡£µ«ÁíÒ»·½Ã棬Ϊ ports ËùÓÃµÄ rc.d ½Å±¾Ó¦ÌṩÈç·¶ÀýËùʾµÄĬÈÏÉèÖá£

(5)
ÕâÀïÎÒÃÇʹÓà dummy_msg À´Êµ¼ÊµØ¿ØÖÆÎÒÃǵĽű¾£¬¼´£¬·¢Ò»¸ö±äÁ¿ÐÅÏ¢¡£

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

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