среда, 20 апреля 2011 г.

Сервисы в Linux

Сервисы - это демоны, процессы которые выполняются в фоне и делают свою важную работу в системе.

У Debian и Fedora есть центральное хранение сервисов /etc/init.d. Тут создаются файлы под все сервисы системы. Файл сервиса это баш-скрипт, которому дали права на выполнение и который ожидает параметро старт/стоп/рестарт+другие.

У Linux есть понятие ран-левела(run-level), у BSD его нет.


Run Level Generic Fedora Core Slackware Debian
0HaltHaltHaltHalt
1Single-user modeSingle-user modeSingle-user modeSingle-user mode
2Basic multi-user mode (without networking)User definable (Unused)User definable - configured the same as runlevel 3Multi-user mode
3Full (text based) multi-user modeMulti-user modeMulti-user mode - default Slackware runlevel Multi-user mode
4Not usedNot usedX11 with KDM/GDM/XDM (session managers)Multi-user mode
5Full (GUI based) multi-user modeFull multi-user mode (with an X-based login screen) - default runlevelUser definable - configured the same as runlevel 3Multi-user mode
6RebootRebootRebootReboot

Каждый этот левел, это режим в котором можно загрузить ОС, дефолтовый режим для системы задается в файле /etc/inittab этот файл используется первым процессом ОС init и он по нему определяет какие сервисы нужно запустить (поскольку Ubuntu решили отказаться от init и заменили его проектом Upstart, то и файла /etc/inittab в нем нет, а дефолтовый режим задается подругому - не через этот файл).

В соответсвии с этими режимами в директории /etc/ есть 6 директорий
/etc/rc0.d
/etc/rc1.d
/etc/rc2.d
/etc/rc3.d
/etc/rc4.d
/etc/rc5.d
/etc/rc6.d
И соответсвенно в Дебиане и в Федоре это папки со ссылками на стартапные срипты в /etc/init.d/ только вот симлинкам добавляют специфические префиксы - S или K. Первый означает, что процесс нужно страртовать(запустить срипт с аргументом start), а второй что остановить(запустить скрипт c аргументом stop). После этой первой буквы идет индекс, который определяет порядок старта/остановки сервисов, а уже за индексом обычно идет название скрипта как в /etc/init.d/.

И так значит в 0 и 6 левелах будет присутсвовать восновному префикс K, а в остальных S.

У rc есть много расшифровок, но наиболее понятная Run next Commands)

Комментариев нет:

Отправить комментарий