ПредишенСледващото

Практическо приложение на знания за rc.d. на подсистемата извлечени от официалната документация BSD не винаги е просто въпрос на начинаещ. В тази статия ще разгледаме някои общи начини да се започне на скрипта, ще покажем как да използвате възможностите за rc.d във всеки от тези случаи и да обсъдим как работи. Този преглед трябва да ви даде покой на подсистемата за rc.d за по-нататъшно ефективно развитие.

След като BSD имаше солидна стартиране скрипт / и т.н. / RC. Нейната нарича първоначален (8) по време на зареждане, а сценарият изпълняват всички задачи в потребителското пространство (в потребителското пространство), необходимо за работа на множество потребители: проверка и монтажни файлови системи, конфигурацията на мрежата, пускане в експлоатация на демони и други подобни. Но в списъка на задачите не е същото в различни системи, администраторите се нуждаят от по-фина настройка. С изключение на някои моменти, / и т.н. / RC е да се променят лесно, и наистина ентусиазирани хора често щастлив да го променяте.

Основният проблем на тази монолитна решение е, че тя не е предоставила механизъм за контрол на отделните компоненти, които работят по сценарий / и т.н. / RC. Например, / и т.н. / RC може да не се рестартира отделна услуга. Системният администратор трябваше да намери ръчно ID процес, за да убие процеса, изчакайте действително осъществяване на процеса, за да се намери в файл / и т.н. / параметри на РК, с което е започнала процеса, ръчно стартиране на процеса от командния ред. Тази последователност от действия е още по-объркващо и сложно, ако рестартиране на услугата е довела до множество процеси, или да изиска допълнителни стъпки при стартиране. С две думи, монолитна скрипта за стартиране не може да изпълнява основната задача на всички скриптове - да направят живота ни по-лесен системен администратор.

По-късно бяха направени опити да се раздели / и т.н. / ЧП от страна на целта да направи някои от най-важните елементи. Чудесен пример за това - за сценарий / и т.н. / netstart. мрежа инициализация работа. Този скрипт ви позволява да стартирате мрежа от потребителски режим, но това не може да бъде напълно интегрирана в стартирането на системата, тъй като част от кода, които са от значение за мрежата трябва да се редуват с части, които не принадлежат към мрежата. Поради тази причина, скрипт / и т.н. / netstart крайна сметка мутира в /etc/rc.network. Последно вече е напълно независим скрипт, той се състои от големи и взаимосвързани функции, написани на ш (1). което, от своя страна, наречена от / и т.н. / RC на различни етапи от стартиране на системата. В същото време, тъй като стартиращи скриптове стават все по-между тях са сложни отношения "," квази-модулна '' старт система е станала още по-сложно, отколкото монолитна скрипт / и т.н. / RC.

Без да се прости и прозрачни стартиране подсистема скриптове са дори по-малко отговори на нуждите на бързо развиващата се BSD-системи. Това стана ясно, че необходимостта от основните стъпки, за да се постигне стартиране модулност и гъвкавост RC система. Поради тези причини и rc.d старт система BSD е създаден Тя признава Лука Myubern стана родители (Лука Mewburn) и общността NetBSD. По-късно, системата е била внесена на FreeBSD. Името му се отнася до местоположението на системните скриптове за отделните услуги, които се намират в /etc/rc.d. Малко по-късно ще разгледаме отделните компоненти на системата за rc.d и да видим как се управляват отделните скриптове.

Основната идея зад BSD rc.d старт система е силно модулен и многократна употреба код. Високата степен на модулност означава, че всеки човек '' услуга '', като демон система или прости задачи с помощта на собствения си сценарий, написан в од (1). която може да се пуска, спира, рестартирайте услугата и да проверите състоянието му. Действието по подразбиране е избран от скрипт командни редове. / И т.н. / RC, както и пред главния обувка сценария, но сега тя не изпълни всичко процеса на зареждане и да доведе до някои скриптове с начало. Просто толкова лесно, системата спира - той работи със същия набор от скриптове, но с аргумента, стоп. Това действие е изпълнен от /etc/rc.shutdown контролния скрипт. Забележете колко добре системата се управлява в съответствие с традиционния принцип на Unix - да се използва набор от малки специализирани инструменти, всеки проектиран за решаване на конкретна задача. Код повторна употреба е подход, което означава, че често използваните операции се изпълняват като функции на рибата (1) и интегрирани в файл / и т.н. / rc.subr. Сега един типичен сценарий може да се състои само от няколко реда код на рибата (1). И накрая, една много важна част от подсистемата за rc.d - rcorder програма (8). това, което прави скрипт / и т.н. / ЧП да тече отделните скриптове в определен ред, основан на зависимости между тях. По-специално, тя също така помага на скрипта /etc/rc.shutdown. защото правилния ред за приключване на обратен ред при стартирането на системата.

Има няколко изисквания за пълно разбиране на представения материал. На първо място, трябва да сте запознати с програмирането в скриптов език од (1). На второ място, трябва да се разбере как функционира системата извършва началните и крайните действия на потребителското пространство, както е описано в RC (8).

Искаме само преди. Не се страхувайте от $ редактора на променлива среда.

С цел да се пишат качествени rc.d скриптове за системни услуги, ние трябва да отговори на следните въпроси:

Тази услуга е задължителна или не?

Сценарият ще служи само една програма (т.е. демон), или ще се представи по-сложни задачи?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!