12.7. FreeBSD дээр rc(8) ашиглах нь

Хувь нэмэр болгон оруулсан Том Рөүдс. Орчуулсан Цагаанхүүгийн Ганболд.

2002 онд FreeBSD системийг эхлүүлэхэд зориулж NetBSD-ийн rc.d системийг оруулсан. Хэрэглэгчид /etc/rc.d сан доторх файлуудыг анзаарах хэрэгтэй. Эдгээр файлуудын ихэнх нь start, stop, болон restart тохируулгуудаар хянагддаг үндсэн үйлчилгээнүүд байдаг. Жишээ нь sshd(8) нь дараах тушаалаар дахин эхлэж болно:

# /etc/rc.d/sshd restart

Энэ процедур нь бусад үйлчилгээнүүдийн адил юм. Мэдээж үйлчилгээнүүд ихэнхдээ автоматаар rc.conf(5)-д зааснаар ачаалах үед эхэлдэг. Жишээ нь Сүлжээний Хаяг Хөрвүүлэх дэмонг эхлэх үед ажиллуулахаар нээх нь амархан бөгөөд /etc/rc.conf-д дараах мөрийг нэмдэг:

natd_enable="YES"

Хэрэв natd_enable="NO" мөр аль хэдийн байвал NO-ийг YES болгож өөрчлөөрэй. rc скриптүүд өөр бусад хамааралтай үйлчилгээнүүдийг дараагийн дахин ачаалалтын үеэр доор тайлбарласны дагуу автоматаар ачаалдаг.

rc.d систем нь үндсэндээ системийн эхлэх/унтрах үеэр үйлчилгээнүүдийг эхлүүлэх/зогсоох зорилготой бөгөөд стандарт start, stop болон restart тохируулгууд нь зөвхөн /etc/rc.conf-ийн харгалзах хувьсагчууд заагдсан үед өөрийн үйлдлийг гүйцэтгэдэг. Жишээ нь дээр дурдсан sshd restart тушаал нь /etc/rc.confsshd_enable хувьсагч YES гэсэн тохиолдолд зөвхөн ажиллана. /etc/rc.conf-д байгаа тохируулгаас үл хамааран үйлчилгээг start, stop эсвэл restart хийхийн тулд тушаалууд “one” угтвартай байх шаардлагатай. Жишээ нь sshd/etc/rc.conf дахь тохиргооноос үл хамааран дахин эхлүүлэхдээ дараах тушаалыг ашиглана:

# /etc/rc.d/sshd onerestart

Тохирох rc.d скриптийг rcvar тохируулгатай ажиллуулж /etc/rc.conf-д үйлчилгээ нээгдсэн эсэхийг амархан шалгадаг. Тиймээс администратор sshd/etc/rc.conf-д нээгдсэн эсэхийг дараах тушаалыг ажиллуулж шалгаж болно:

# /etc/rc.d/sshd rcvar
# sshd
$sshd_enable=YES

Тэмдэглэл: Хоёр дахь мөр (# sshd) нь root консолынх биш sshd тушаалын гаргасан үр дүн юм.

Үйлчилгээг ажиллах байгаа эсэхийг шалгах status тохируулга байдаг. Жишээ нь sshd эхэлсэн эсэхийг шалгахдаа:

# /etc/rc.d/sshd status
sshd is running as pid 433.

Зарим тохиолдолд үйлчилгээг reload хийх бас боломжтой байдаг. Энэ нь үйлчилгээг өөрийн тохиргооны файлуудыг дахин уншихыг зааж үйлчилгээ уруу дохио шидэхийг оролддог. Ихэнх тохиолдолд энэ нь үйлчилгээ уруу SIGHUP дохио шиднэ гэсэн үг юм. Үйлчилгээ болгонд энэ боломжийн дэмжлэг байдаггүй.

rc.d систем нь зөвхөн сүлжээний үйлчилгээнд ашиглагдаад зогсохгүй мөн системийн эхлүүлэлтэд бас ихээхэн хувь нэмэр оруулдаг. Жишээ нь bgfsck файлыг авч үзье. Энэ скрипт ажиллахад дараах мэдээллийг хэвлэж гаргана:

Starting background file system checks in 60 seconds.

Тиймээс энэ файлыг зөвхөн системийг эхлүүлэх үед файлын системийн арын шалгалтыг хийхэд хэрэглэдэг.

Системийн олон үйлчилгээнүүд зөв ажиллахын тулд бусад үйлчилгээнүүдээс хамаардаг. Жишээ нь NIS болон бусад RPC дээр тулгуурласан үйлчилгээнүүд rpcbind (portmapper) үйлчилгээ ажиллахаас нааш амжилттай ажилладаггүй. Үүнийг шийдэхийн тулд хамаарлуудын тухай болон бусад мета-өгөгдлийн тухай мэдээллийг эхлүүлэх скрипт бүрийн дээд хэсэгт тайлбараар оруулсан байдаг. rcorder(8) програм хамаарлуудыг хангаж системийн үйлчилгээнүүдийг ямар дарааллаар ажиллуулах ёстойг тогтоохын тулд эдгээр тайлбаруудыг уншдаг.

Дараах үгнүүдийг бүх эхлүүлэх скриптэд оруулах ёстой (Эдгээр нь эхлүүлэх скриптийг “идэвхжүүлэх”эд rc.subr(8)-д шаардлагатай байдаг):

Дараах үгнүүдийг эхлүүлэх скрипт бүрийн эхэнд оруулж болно. Эдгээр нь заавал шаардлагатай биш боловч rcorder(8)-д тус дөхөм болох ашигтай байдаг:

Эдгээр түлхүүр үгнүүдийг эхлүүлэх скрипт болгонд болгоомжтойгоор тохируулж өгснөөр бусад зарим UNIX® үйлдлийн системүүд шиг “ажиллах түвшингүүдтэй (runlevels)” зууралдалгүйгээр скриптүүдийн эхлэх дарааллыг маш сайн хянах боломжийг администраторт бий болгох юм.

rc.d системийн талаар нэмэлт мэдээллийг rc(8) болон rc.subr(8) гарын авлагын хуудаснуудаас олж болно. Хэрэв та өөрийн rc.d скриптүүд бичих эсвэл байгаагаа сайжруулахыг сонирхож байгаа бол танд бас энэ нийтлэл хэрэгтэй байж болох юм.

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.