¡¡¡¡rc.d ½Å±¾ÔÚϵͳÆô¶¯Ê±ÓÃÓÚÆô¶¯·þÎñ£¬ ²¢Îª¹ÜÀíÔ±Ìṩֹͣ¡¢ Æô¶¯ºÍÖØÐÂÆô¶¯Ä³¸ö·þÎñµÄ±ê×¼·½·¨¡£ Ports °²×°µÄ½Å±¾»á¼¯³Éµ½ÏµÍ³µÄ rc.d ¿ò¼ÜÖС£ ¹ØÓÚÈçºÎʹÓÃËüµÄ˵Ã÷£¬ ¿ÉÒÔÔÚ Ê¹ÓÃÊÖ²áµÄ rc.d ÕÂ½Ú ÕÒµ½¡£ ¹ØÓÚ¿ÉÓÃÃüÁîµÄÏêϸ½âÊÍ£¬ Ôò¿ÉÒÔÔÚ rc(8) ºÍ rc.subr(8) ÕÒµ½¡£ ×îºó£¬ Äú¿ÉÒÔ²ÎÔÄ ÕâÆªÎÄÕ Á˽â׫д rc.d ½Å±¾µÄ×î¼Ñʵ¼ù¡£
¡¡¡¡¿ÉÒÔ°²×°Ò»»ò¶à¸ö rc.d ½Å±¾£º
USE_RC_SUBR= doormand
¡¡¡¡ÕâЩ½Å±¾±ØÐë·Åµ½ files Ŀ¼£¬ ²¢¸½¼Ó .in¡£ Õâ¸öÎļþÖпÉÒÔʹÓñê×¼µÄ SUB_LIST Ìæ»»Õ¹¿ª¡£ ³ý´ËÖ®Í⣬ ÎÒÃÇ»¹Ç¿ÁÒÍÆ¼öʹÓà %%PREFIX%% ºÍ %%LOCALBASE%% Ìæ»»Õ¹¿ª¡£ ¹ØÓÚ SUB_LIST µÄ½éÉÜ¿ÉÒÔÔÚ ±¾ÊéµÄÏà¹ØÕÂ½Ú ÕÒµ½¡£
¡¡¡¡ÔÚ FreeBSD 6.1-RELEASE ֮ǰ£¬ Óë rcorder(8) µÄ¼¯³ÉÊÇͨ¹ý USE_RCORDER ¶ø²»ÊÇ USE_RC_SUBR À´Íê³ÉµÄ¡£ ²»¹ý£¬ ³ý·Ç port ÐèÒªÌṩ°²×°½ø»ù±¾ÏµÍ³ÕâÑùµÄÑ¡Ï »òÕß·þÎñÐèÒªÔÚ rc.d ½Å±¾ FILESYSTEMS ֮ǰÔËÐÐÕâÀàÌØÊâÇé¿ö£¬ Ò»°ãÀ´ËµÊDz»ÐèҪʹÓÃÕâ¸ö¹¦Äܵġ£
¡¡¡¡´Ó FreeBSD 6.1-RELEASE ¿ªÊ¼£¬ ±¾µØ°²×°µÄ rc.d ½Å±¾ (°üÀ¨ÓÉ port °²×°µÄ½Å±¾) »áÄÉÈë»ù±¾ÏµÍ³µÄ rcorder(8)¡£
¡¡¡¡ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄ rc.d ½Å±¾£º
#!/bin/sh # $FreeBSD$ # # PROVIDE: doormand # REQUIRE: LOGIN # KEYWORD: shutdown # # ÔÚ /etc/rc.conf.local »ò /etc/rc.conf ÖÐÔö¼ÓÏÂÊöÉèÖÿÉÒÔÆôÓÃÕâÒ»·þÎñ£º # # doormand_enable (bool): ĬÈÏÉèΪ NO¡£ # ÉèΪ YES ¿ÉÒÔÆôÓà doormand¡£ # doormand_config (path): ĬÈÏÉèΪ %%PREFIX%%/etc/doormand/doormand.cf¡£ # . /etc/rc.subr name="doormand" rcvar=${name}_enable command=%%PREFIX%%/sbin/${name} pidfile=/var/run/${name}.pid load_rc_config $name : ${doormand_enable="NO"} : ${doormand_config="%%PREFIX%%/etc/doormand/doormand.cf"} command_args="-p $pidfile -f $doormand_config" run_rc_command "$1"
¡¡¡¡³ý·ÇÓкÜÕ¾µÃס½ÅµÄÀíÓÉÌáǰÆô¶¯·þÎñ£¬ËùÓÐµÄ ports ½Å±¾Ó¦Ê¹ÓÃ
REQUIRE: LOGIN¡£ Èç¹û·þÎñÐèÒªÒÔÌØ¶¨Óû§ (³ý root Ö®Íâ) Éí·ÝÆô¶¯£¬ Ôò±ØÐëÕâÑù×ö¡£ ÔÚÇ°ÃæµÄÀý×ÓÖУ¬ ÎÒÃÇ»¹Ê¹ÓÃÁË
KEYWORD: shutdownÒÔ±ãÈà mythical port ÔÚϵͳͣ»úµÄ¹ý³ÌÖÐÒÔÕý³£µÄ·½Ê½ÖÕÖ¹£¬ ÒòΪËüÐèÒªÔÚϵͳÒýµ¼¹ý³ÌÖÐÆô¶¯·þÎñ¡£ Èç¹û½Å±¾Ã»ÓÐÆô¶¯ÈκηþÎñ£¬ Ôò²¢²»ÐèÒªÕâÑù×ö¡£
¡¡¡¡ÕâÀ ¶Ô±äÁ¿µÄĬÈϸ³Öµ·½·¨Ó¦²ÉÓà "="£¬ ¶ø·Ç ":=" ÕâÑùµÄÐÎʽ¡£ ÕâÊÇÒòΪ£¬ ǰһÖÖ¸³Öµ·½·¨Ö»ÓÐÔÚ±äÁ¿Î´±»ÉèÖÃʱ²ÅÉèÖÃĬÈÏÖµ£¬ ¶øºóÒ»ÖÖ·½·¨Ôò»áÔÚ±äÁ¿Ã»ÓÐÉèÖ㬠»òÕß ÆäֵΪ¿Õʱ¶¼ÉèÖÃĬÈÏÖµ¡£ Óû§·Ç³£¿ÉÄÜÔÚÆä rc.conf.local ÖÐʹÓÃÀàËÆ
doormand_flags=""ÕâÑùµÄÉèÖ㬠¶ø²ÉÓà ":=" À´½øÐи³Öµ£¬ Ôò»áÔÚ²»¾Òâ¼ä¸²¸ÇÓû§ËùÏ£ÍûµÄÉèÖá£
×¢Òâ: ÐÂÔöµÄ½Å±¾¾ù²»Ó¦Ê¹Óà .sh ºó׺¡£ δÀ´£¬ ÈÔÈ»°üº¬ÕâÒ»ºó׺µÄ½Å±¾½«±»ÅúÁ¿¸ÄÃû¡£
¡¡¡¡¿ÉÒÔÔÚÐ¶ÔØµÄ¹ý³ÌÖÐ×Ô¶¯µØÍ£Ö¹·þÎñ¡£ ÎÒÃǽ¨ÒéÖ»ÓÐÔÚ¾ø¶Ô±ØÒª£¬ ÀýÈç±ØÐëÔÚɾ³ýÎļþ֮ǰֹͣ·þÎñÕâÀàµÄÇé¿öϲÅʹÓÃÕâÒ»¹¦ÄÜ¡£ ͨ³£À´Ëµ£¬ ¾ö¶¨ÊÇ·ñÔÚÐ¶ÔØÊ±Í£Ö¹·þÎñÊÇϵͳ¹ÜÀíÔ±ÐèÒª¿¼ÂǵÄÊÂÇé¡£ ÁíÍâҪעÒ⣬ Õâ¸ö¹¦ÄÜÒ²»áÓ°ÏìÉý¼¶¹ý³Ì¡£
¡¡¡¡ÐèҪʱ¿ÉÒÔÔÚ pkg-plist ÖмÓÈ룺
@stopdaemon doormand
¡¡¡¡ÕâÀïµÄ²ÎÊý±ØÐëÓë USE_RC_SUBR ±äÁ¿µÄÄÚÈÝÆ¥Åä¡£