7 Á´½Ó½Å±¾µ½ rc.d ¿ò¼Ü

¡¡¡¡µ±±àдºÃÁËÒ»¸ö½Å±¾£¬ËüÐèÒª±»ÕûºÏµ½ rc.d ÖÐÈ¥¡£ Ò»¸öÖØÒªµÄ²½Öè¾ÍÊǰ²×°½Å±¾µ½ /etc/rc.d £¨¶Ô»ù±¾ÏµÍ³¶øÑÔ£©»ò /usr/local/etc/rc.d £¨¶Ôports¶øÑÔ£©ÖÐÈ¥¡£ÔÚ <bsd.prog.mk> ºÍ <bsd.port.mk> Öж¼Îª´ËÌṩÁË·½±ãµÄ½Ó¿Ú£¬ ͨ³£Äã²»±Øµ£ÐÄÊʵ±µÄËùÓÐȨÏÞºÍģʽ¡£ÏµÍ³½Å±¾Ó¦µ±ÊÇͨ¹ý¿ÉÒÔÔÚ src/etc/rc.d ÕÒµ½µÄ Makefile °²×°µÄ¡£Port ½Å±¾¿ÉÒÔÏñ Porter's Handbook ÖÐÃèÊöÄÇÑùͨ¹ýʹÓà USE_RC_SUBR À´±»°²×°¡£

¡¡¡¡²»¹ý£¬ÎÒÃÇÓ¦¸ÃÔ¤ÏÈ¿¼Âǵ½ÎÒÃǽű¾ÔÚϵͳÆô¶¯Ë³ÐòÖеÄλÖᣠÎÒÃǵĽű¾Ëù´¦ÀíµÄ·þÎñ¿ÉÄÜÒÀÀµÓÚÆäËüµÄ·þÎñ¡£¾Ù¸öÀý×Ó£¬ ûÓÐÍøÂç½Ó¿ÚºÍ·ÓÉÑ¡ÔñµÄÆôÓÃÔËÐеϰ£¬Ò»¸öÍøÂçÊØ»¤½ø³ÌÊDz»Æð×÷Óõġ£ ¼´Ê¹Ò»¸ö·þÎñ¿´ËÆÊ²Ã´¶¼²»ÐèÒª£¬ÔÚ»ù±¾Îļþϵͳ¼ì²é¹ÒÔØÍê±Ï֮ǰҲºÜÄÑÆô¶¯¡£

¡¡¡¡Ö®Ç°ÎÒÃÇÔøÌáµ½¹ý rcorder(8)¡£ÏÖÔÚÊÇʱºòÀ´ÃÜÇеعØ×¢ÏÂËüÁË¡£ ÁýͳµØËµ£¬rcorder(8) ´¦ÀíÒ»×éÎļþ£¬¼ìÑéËüÃǵÄÄÚÈÝ£¬ ²¢´ÓÎļþ¼¯ºÏ´òÓ¡Ò»¸öÎļþÁбíµÄÒÀÀµË³Ðòµ½ stdout ±ê×¼Êä³ö¡£ÕâµãÊÇÓÃÓÚ±£³ÖÎļþÄÚ²¿µÄÒÀÀµÐÅÏ¢£¬ ¶øÃ¿¸öÎļþÖ»ÄÜ˵Ã÷×Ô¼ºµÄÒÀÀµ¡£Ò»¸öÎļþ¿ÉÒÔÖ¸¶¨ÈçÏÂÐÅÏ¢£º

¡¡¡¡²¢²»Ææ¹ÖµÄÊÇ£¬rcorder(8) Ö»ÄÜ´¦Àí½Ó½ü sh(1) Óï·¨µÄÎı¾Îļþ¡£rcorder(8) Ëù½â¶ÁµÄÌØÊâÐп´ÆðÀ´ÀàËÆ sh(1) µÄ×¢ÊÍ¡£ÕâÖÖÌØÊâÎı¾ÐеÄÓï·¨Ï൱ÑϸñµØ¼ò»¯ÁËÆä´¦Àí¡£ Çë²éÔÄ rcorder(8) ÒÔ»ñÈ¡¸üÏêϸµÄÐÅÏ¢¡£

¡¡¡¡³ýʹÓà rcorder(8) µÄÌØÊâÐÐÒÔÍ⣬ ½Å±¾¿ÉÒÔ¼á³Ö½«ÆäÒÀÀµµÄÆäËü·þÎñÇ¿ÖÆÐÔÆô¶¯¡£µ±ÆäËü·þÎñÊÇ¿ÉÑ¡µÄ£¬ ²¢Òòϵͳ¹ÜÀíÔ±´íÎóµØÔÚ rc.conf(5) ÖнûÓõô¸Ã·þÎñ¶øÊ¹Æä²»ÄÜ×ÔÐÐÆô¶¯Ê±£¬»áÐèÒªÕâÒ»µã¡£

¡¡¡¡½«ÕâЩ½÷¼ÇÔÚÐÄ£¬ÎÒÃÇÀ´¿¼ÂÇϼòµ¥½áºÏÁËÒÀÀµÐÅÏ¢ÔöÇ¿µÄÊØ»¤½ø³Ì½Å±¾£º

#!/bin/sh

# PROVIDE: mumbled oldmumble (1)
# REQUIRE: DAEMON cleanvar frotz(2)
# BEFORE:  LOGIN(3)
# KEYWORD: nojail shutdown(4)

. /etc/rc.subr

name="mumbled"
rcvar=`set_rcvar`
command="/usr/sbin/${name}"
start_precmd="${name}_prestart"

mumbled_prestart()
{
        if ! checkyesno frotz_enable && \
            ! /etc/rc.d/frotz forcestatus 1>/dev/null 2>&1; then
                force_depend frotz || return 1(5)
        fi
        return 0
}

load_rc_config $name
run_rc_command "$1"

¡¡¡¡¸úÇ°ÃæÒ»Ñù£¬×öÈçÏÂÏêϸ·ÖÎö£º

(1)
¸ÃÐÐÉùÃ÷ÁËÎÒÃǽű¾ËùÌṩµÄ ¡°Ìõ¼þ¡± µÄÃû×Ö¡£ ÏÖÔÚÆäËü½Å±¾¿ÉÒÔÓÃÄÇЩÃû×ÖÀ´±êÃ÷ÎÒÃǽű¾µÄÒÀÀµ¡£

×¢Òâ: ͨ³£½Å±¾Ö¸¶¨Ò»¸öµ¥¶ÀµÄÒÑÌṩµÄÌõ¼þ¡£È»¶ø£¬ ²¢Ã»ÓÐʲô·Á°­ÎÒÃÇ´ÓÁгöµÄÄÇЩÌõ¼þÖÐÖ¸¶¨£¬ÀýÈ磬 ΪÁ˼æÈÝÐÔµÄÄ¿µÄ¡£

ÔÚÆäËüÇé¿ö£¬Ö÷ÒªµÄÃû³Æ£¬»òÕß˵ΨһµÄ£¬ PROVIDE: Ìõ¼þÓ¦¸ÃÓë ${name} Ïàͬ¡£

(2)(3)
Òò´ËÎÒÃǵĽű¾Ö¸Ê¾ÁËÆäÒÀÀµÓÚ±ðµÄ½Å±¾ËùÌṩµÄ ¡°Ìõ¼þ¡±¡£¸ù¾ÝÕâЩÐеÄÐÅÏ¢£¬½Å±¾Çëʾ rcorder(8) ÒÔ½«Æä·ÅÔÚÒ»¸ö»ò¶à¸öÌṩ DAEMON ºÍ cleanvar µÄ½Å±¾ºóÃæ£¬µ«ÔÚÌṩ LOGIN µÄ½Å±¾Ç°Ãæ¡£

×¢Òâ: BEFORE: ÕâÒ»Ðв»¿ÉÒÔÔÚÆäËü½Å±¾²»ÍêÕûµÄÒÀÀµ¹ØÏµÁбíÖÐÀÄÓᣠÊʺÏʹÓà BEFORE: µÄÇé¿öÊǵ±ÆäËü½Å±¾²»¹ØÐÄÎÒÃǵĽű¾£¬ µ«ÊÇÎÒÃǵĽű¾Èç¹ûÔÚÁíÒ»¸ö֮ǰÔËÐеϰÄܹ»¸üºÃµØÖ´ÐÐÈÎÎñ¡£ Ò»¸öµäÐ͵ÄʵÀýÊÇÍøÂç½Ó¿ÚºÍ·À»ðǽ£º ËäÈ»½Ó¿Ú²»ÒÀÀµ·À»ðǽÀ´Íê³É×Ô¼ºµÄ¹¤×÷£¬ µ«ÊÇϵͳ°²È«½«ÒòÒ»ÇÐÍøÂçÁ÷Á¿Ö®Ç°Æô¶¯µÄ·À»ðǽ¶øÊÜÒæ¡£

³ýÁËÌõ¼þÏà¶ÔÓ¦µÄÿ¸öµ¥¶À·þÎñ£¬½Å±¾Ê¹ÓÃÔªÌõ¼þºÍËüÃÇµÄ ¡°Õ¼Î»·û¡± À´±£Ö¤Ä³¸ö²Ù×÷×éÔÚÆäËü֮ǰ±»Ö´ÐС£ ÕâЩÊÇÓÉ UPPERCASE ´óдÃû×ÖËù±íʾµÄ¡£ËüÃǵÄÁбíºÍÓ÷¨¿ÉÒÔÔÚ rc(8) ÖÐÕÒµ½¡£

Çмǽ«Ò»¸ö·þÎñÃû³Æ·Å½ø REQUIRE: Ðв»Äܱ£Ö¤Êµ¼ÊµÄ·þÎñ»áÔÚÎÒÃǵĽű¾Æô¶¯µÄʱºòÔËÐС£ ËùÐèÇóµÄ·þÎñ¿ÉÄÜ»áÆô¶¯Ê§°Ü»òÔÚ rc.conf(5) Öб»½ûµôÁË¡£ ÏÔÈ»£¬rcorder(8) ÊÇÎÞ·¨×·×ÙÕâЩϸ½ÚµÄ£¬²¢ÇÒ rc(8) Ò²²»»áÈ¥×·×Ù¡£ËùÒÔ£¬ ½Å±¾Æô¶¯µÄÓ¦ÓóÌÐòÓ¦µ±Äܹ»Ó¦¸¶ÈκÎËùÐèÇóµÄ·þÎñµÄ²»¿ÉÓÃÇé¿ö¡£ ijЩÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔÓà ÏÂÃæ ËùÌÖÂ۵ķ½Ê½À´Ð­Öú½Å±¾¡£

(4)
ÈçÎÒÃÇ´ÓÉÏÊöÎÄ×ÖËù¼ÇÆðµÄ£¬rcorder(8) ¹Ø¼ü×Ö¿ÉÒÔÓÃÀ´Ñ¡Ôñ»òÊ¡ÂÔijЩ½Å±¾¡£¼´ÈκΠrcorder(8) Óû§¿ÉÒÔͨ¹ýÖ¸¶¨ -k ºÍ -s Ñ¡ÏîÀ´·Ö±ðÖ¸¶¨ ¡°±£ÁôÇåµ¥£¨keep list£©¡± ºÍ ¡°Ìø¹ýÇåµ¥£¨skip list£©¡±¡£ ´ÓÈ«²¿Îļþµ½°´ÒÀÀµ¹ØÏµÅÅÁеÄÇåµ¥£¬rcorder(8) ½«Ö»ÊÇÌô³ö±£ÁôÇåµ¥£¨³ý·ÇÊǿյģ© ÖÐÄÇЩ´ø¹Ø¼ü×ÖµÄÒÔ¼°´ÓÌø¹ýÇåµ¥ÖÐÌô³ö²»´ø¹Ø¼ü×ÖµÄÎļþ¡£

ÔÚ FreeBSD ÖУ¬rcorder(8) ±» /etc/rc ºÍ /etc/rc.shutdown ËùʹÓᣠÕâÁ½¸ö½Å±¾¶¨ÒåÁË FreeBSD ÖÐ rc.d ¹Ø¼ü×ÖÒÔ¼°ËüÃǵÄÒâÒåµÄ±ê×¼ÁбíÈçÏ£º

nojail

¸Ã·þÎñ²»ÊÊÓÃÓÚ jail(8) »·¾³¡£ Èç¹ûÊÇÔÚ jail µÄÄÚ²¿µÄ»°£¬×Ô¶¯Æô¶¯ºÍ¹Ø±Õ³ÌÐò½«ºöÂԸýű¾¡£

nostart

¸Ã·þÎñÖ»ÄÜÊÖ¶¯Æô¶¯·ñÔò½«²»»áÆô¶¯¡£ ×Ô¶¯Æô¶¯³ÌÐò½«ºöÂԴ˽ű¾¡£½áºÏ shutdown ¹Ø¼ü×ֵϰ£¬Õâ¿ÉÒÔÓÃÀ´±àдֻÔÚϵͳ¹Ø±ÕʱִÐÐһЩÈÎÎñµÄ½Å±¾¡£

shutdown

Õâ¸ö¹Ø¼ü×Ö Ã÷È· µØÁгöÁËÐèÒªÔÚϵͳ¹Ø±ÕǰֹͣµÄ·þÎñ¡£

×¢Òâ: µ±ÏµÍ³¼´½«¹Ø±ÕµÄʱºò£¬ /etc/rc.shutdown ÔÚÔËÐС£ Ëü¼Ù¶¨ÈÏΪ´ó²¿·ÖµÄ rc.d ½Å±¾ÔÚÄÇ¿Ìʲô¶¼²»×ö¡£Òò´Ë£¬ /etc/rc.shutdown Ñ¡ÔñÐԵص÷ÓôøÓÐ shutdown ¹Ø¼ü×ÖµÄ rc.d ½Å±¾£¬ ÓÐЧµØºöÂÔÆäÓàµÄ½Å±¾¡£ÎªÁ˸ü¿ìµÄ¹Ø±Õ£¬ /etc/rc.shutdown ´«µÝ faststop ÃüÁî¸øÆäÔËÐеĽű¾£¬ ÒÔÌø¹ýÔ¤Öõļì²é£¬ÀýÈ磬½ø³ÌÎļþ pidfile µÄ¼ì²é¡£ ÕýÈçÒÀÀµÐÔ·þÎñÓ¦¸ÃÔÚÆäËùÒÀÀµµÄ·þÎñ֮ǰֹͣ£¬ /etc/rc.shutdown ÒÔÏà·´µÄÒÀÀµ´ÎÐòÀ´ÔËÐÐÕâЩ½Å±¾¡£

Èç¹ûдһ¸öÕæÕýµÄ rc.d ½Å±¾µÄ»°£¬ ÄãÓ¦µ±¿¼Âǵ½ÆäÊÇ·ñÓëϵͳ¹Ø±ÕʱÓйØÏµ¡£ÀýÈ磬 Èç¹ûÄãµÄ½Å±¾Ö»Í¨¹ýÏìÓ¦ start ÃüÁîÀ´ÔËÐÐÈÎÎñ£¬ÄÇôÄã²»ÐèÒª°üº¬Õâ¸ö¹Ø¼ü×Ö¡£È»¶ø£¬ Èç¹ûÄãµÄ½Å±¾¹ÜÀí×ÅÒ»¸ö·þÎñ£¬ÄÇô£¬ÔÚϵͳ½øÈë halt(8) ÖÐËùÃèÊöµÄÆä±¾Éí¹Ø±Õ˳ÐòµÄ×îÖÕ½×¶Î֮ǰֹͣ¸Ã½Å±¾£¬ ¿ÉÄÜÊǸö²»´íµÄÖ÷Òâ¡£ÌØ±ðÊÇ£¬ ÄãÏÔÈ»ÊÇÓ¦¸Ã¹Ø±ÕÒ»¸öÐèÒªÏ൱³¤Ê±¼ä£¬ »òÐèÒªÌØ¶¨µÄ¶¯×÷²ÅÄܸɾ»µØ¹Ø±ÕµÄ·þÎñ¡£ Êý¾Ý¿âÒýÇæ¾ÍÊÇÕâÑùÒ»¸öµäÐ͵ÄÀý×Ó¡£

(5)
ÒÔ force_depend ÆðʼµÄÐÐÓ¦±»ÓÃÓÚ¸ü½÷É÷µÄÇé¿ö¡£Í¨³££¬ÓÃÓÚÐÞÕýÏ໥¹ØÁªµÄ rc.d ½Å±¾·Ö²ã½á¹¹µÄÅäÖÃÎļþʱ»á¸ü¼ÓÎÈÍס£

Èç¹ûÄãÈÔ²»ÄÜÍê³É²»º¬ force_depend µÄ½Å±¾£¬ ·¶ÀýÌṩÁËÒ»¸öÈçºÎÓÐÌõ¼þµØµ÷ÓÃËüµÄϰ¹ßÓ÷¨¡£ÔÚ·¶ÀýÖУ¬ÎÒÃÇµÄ mumbled ÊØ»¤½ø³ÌÐèÇóÁíÒ»¸öÒԸ߼¶·½Ê½Æô¶¯µÄ½ø³Ì£¬ frotz¡£µ« frotz Ò²ÊÇ¿ÉÑ¡µÄ£» ¶øÇÒ rcorder(8) ¶ÔÕâЩÐÅÏ¢ÊÇÒ»ÎÞËùÖªµÄ¡£ÐÒÔ˵ÄÊÇ£¬ ÎÒÃǵĽű¾ÒÑ·ÃÎʵ½È«²¿µÄ rc.conf(5) ±äÁ¿¡£Èç¹û frotz_enable ÎªÕæ£¬ÎÒÃÇÏ£ÍûµÄ×îºÃ½á¹ûÊÇÒÀ¿¿ rc.d ÒѾ­Æô¶¯ÁË frotz¡£ ·ñÔòÎÒÃÇÇ¿ÖÆ¼ì²é frotz µÄ״̬¡£×îÖÕ£¬ Èç¹û frotz ÒÀÀµµÄ·þÎñûÓÐÕÒµ½»òÔËÐеϰ£¬ ÎÒÃǽ«Ç¿ÖÆÆäÔËÐС£Õâʱ force_depend ½«·¢³öÒ»Ìõ¾¯¸æÐÅÏ¢£¬ÒòΪËüÖ»Ó¦¸ÃÔÚ¼ì²éµ½ÅäÖÃÐÅÏ¢¶ªÊ§µÄÇé¿öϱ»µ÷Óá£

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

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