6.22 Æô¶¯ºÍÍ£Ö¹·þÎñ (rc ½Å±¾)

¡¡¡¡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 ºó׺¡£ δÀ´£¬ ÈÔÈ»°üº¬ÕâÒ»ºó׺µÄ½Å±¾½«±»ÅúÁ¿¸ÄÃû¡£

6.22.1 Ð¶ÔØÊ±Í£Ö¹·þÎñ

¡¡¡¡¿ÉÒÔÔÚÐ¶ÔØµÄ¹ý³ÌÖÐ×Ô¶¯µØÍ£Ö¹·þÎñ¡£ ÎÒÃǽ¨ÒéÖ»ÓÐÔÚ¾ø¶Ô±ØÒª£¬ ÀýÈç±ØÐëÔÚɾ³ýÎļþ֮ǰֹͣ·þÎñÕâÀàµÄÇé¿öϲÅʹÓÃÕâÒ»¹¦ÄÜ¡£ ͨ³£À´Ëµ£¬ ¾ö¶¨ÊÇ·ñÔÚÐ¶ÔØÊ±Í£Ö¹·þÎñÊÇϵͳ¹ÜÀíÔ±ÐèÒª¿¼ÂǵÄÊÂÇé¡£ ÁíÍâҪעÒ⣬ Õâ¸ö¹¦ÄÜÒ²»áÓ°ÏìÉý¼¶¹ý³Ì¡£

¡¡¡¡ÐèҪʱ¿ÉÒÔÔÚ pkg-plist ÖмÓÈ룺

@stopdaemon doormand

¡¡¡¡ÕâÀïµÄ²ÎÊý±ØÐëÓë USE_RC_SUBR ±äÁ¿µÄÄÚÈÝÆ¥Åä¡£

ÈôÄúÓйØÓÚ FreeBSD ports ϵͳµÄÎÊÌ⣬ Çë·¢Ë͵ç×ÓÓʼþÖÁ <ports@FreeBSD.org>¡£
¹ØÓÚ´ËÎĵµµÄÈκÎÎÊÌ⣬ ÇëÖº¯ <doc@FreeBSD.org>¡£