Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist

Приемы работы в Ubuntu.
Глава 8: Администрирование

Оригинал: "Ubuntu Hacks: Chapter 8 - Administration"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: октябрь 2010 г.

Совет # 77: Управление запуском сервисов

Используйте графический интерфейс или командную строку для запуска, остановки, отключения или включения сервисов.

Когда загружается Ubunt, вы видите текстовые сообщения, которые бегут по экрану, подробно показывая, что конкретно делает Ubuntu. Среди этого есть ряд сервисов, которые Ubuntu запускает во время загрузки, например, сервис планирования заданий cron, системный журнал, а также графический менеджер входа в систему. Если у вас в системе установлены другие сервисы, например, веб-сервер, то эти сервисы также будут запускаться во время загрузки. Впрочем, иногда вам может потребоваться остановить или временно отключить сервисы и в Ubuntu есть ряд способов сделать это, причем как в графическом режиме, так и из командной строки. В настоящем совете показаны некоторые наиболее распространенные способы управления запуском сервисов.

Средство администрирования сервисами

В Ubuntu есть графический инструмент для управления сервисами, которые запускаются во время загрузки. Выберите System → Administration → Services (Система → Администрирование → Сервисы) или введите:

$ sudo services-admin

для того, чтобы запустить Services Administration Tool — средство администрирования сервисов. На рис 8-4 показано, насколько проста эта программа: у вас есть список сервисов с флажками рядом с каждым сервисом. Чтобы отключить сервис, просто снимите соответствующий флажок и нажмите кнопку ОК. В настоящее время эта программа поддерживает управление только теми сервисами, которые запускаются при загрузке системы, так что для того, чтобы вручную запустить, остановить или перезапустить сервис, вам нужно обратиться к средствам командной строки.

Ubuntu_Hacks. Services Administration Tool

Рис.8-4. Средство администрирования сервисов Services Administration Tool

Использование средств командной строки

Прежде, чем научиться запускать, останавливать и отключать сервисы из командной строки, очень важно понять процесс запуска Ubuntu и того, как в Ubuntu определяется, какие программы следует запускать при запуске системы. В большинстве дистрибутивов Linux (в том числе и в Ubuntu) с помощью скриптов инициализации в стиле UNIX System V определяется, какие программы при загрузке системы запускать, а какие - нет. Все скрипты, которые могут быть потенциально запущены при загрузке системы, как правило, располагаются в Ubuntu в директории /etc/init.d/. Однако не каждый скрипт, находящийся в директории /etc/init.d/ будет запущен во время загрузки системы. В Linux запуск этих скриптов организуется в соответствие с так называемыми уровнями запуска или runlevel; в большинстве систем Linux имеется 7 уровней - с 0 по 6. Считайте, что runlevel является специальным списком программ, которые Ubuntu должна запустить прежде, чем предоставит вам вход в систему.

В системе Linux за некоторыми из этих уровней runlevel закреплены специальные состояния:

Runlevel 0

Остановка системы.

Runlevel 1

Устанавливается однопользовательский режим.

Runlevels 2-5

Устанавливаются различные варианты многопользовательского режима. Но, как правило, по умолчанию из них используется один или два варианта.

Runlevel 6

Перезагрузка системы.

Для каждого уровня запуска есть директорий, в котором хранятся символические ссылки на определенные скрипты, находящиеся в /etc/init.d, которые будут запускаться при выборе этого конкретного уровня запуска и будут останавливается при выходе из него. В Ubuntu эти символические ссылки помещаются в директорий /etc/rc<runlevel>.d, например, все скрипты уровня запуска 2 находятся в директории /etc/rc2.d/.

Если вы посмотрите на один из этих директориев уровней запуска, вы увидите, что многие из символических ссылок на скрипты в /etc/init.d имеют странные имена, которые начинаются с символов S, K или D, затем - число и, только потом, имя скрипта. В Ubuntu по умолчанию устанавливается уровень запуска 2, поэтому приведем ниже пример директория /etc/rc2.d:

Как видите, в этом директории масса символических ссылок, которые указывают на скрипты в директории init.d. Буква в начале каждого файла сообщает процессу init, когда выполнять этот скрипт. Если скрипт начинается с буквы S, то init запустит это скрипт при переходе на этот уровень запуска. Если скрипт начинается с буквы K, то init останавливает сервис (K от команды kill - убить), когда происходит переход на другой уровень запуска. Если скрипт начинается с буквы D, то этот скрипт будет отключен на некоторое время и процесс init проигнорирует его. Процесс init запускает скрипты в порядке следования номеров, используемых в именах символических ссылок, так что вы будете знать, в каком порядке будут запускаться скрипты. Это удобно в случаях, когда нужно обеспечить, чтобы некоторые сервисы запускались тольк после того, как будут запущены сервисы, от которых они зависят.

Когда Linux загружается и запускается процесс init, этот процесс читает конфигурационные настройки из /etc/inittab, где указаны настройки каждого уровня запуска, определен уровень выполнения, используемый по умолчанию, а также приведены некоторые другие настройки. Затем процесс init загрузит все системные скрипты из специального директория системного уровня запуска /etc/rcS.d. С помощью этих скрптов будут загружены демоны и сервисы, которые жизненно важны в процессе загрузки. Наконец, процесс init запустит в алфавитном порядке все скрипты, соответствующие уровню запуска, используемому по умолчанию.

Предостережение

Скрипты из директория /etc/rcS.d выполняются на уровнях от 1 до 5, так что вы, как правило, не должны их трогать, если не знаете, что они делают. Если вы случайно отключите ключевой сервис, вам, возможно, придется воспользоваться спасательным диском для того, чтобы ликвидировать ошибку.

Смена уровня запуска

Вы можете из командной строки с помощью команды init самостоятельно изменить уровень запуска. Чтобы из командной строки переключиться в однопользовательский режим, введите следующее:

$ sudo init 1

Предостережение

Будьте осторожны, если вы работаете в X11, поскольку когда вы выполните эту команду, она уничтожит X и среду вашего рабочего стола!

Эта команда запускает все скрипты , которые остановят все процессы текущего уровня запуска, а затем запустит все скрипты, которые запустят процессы однопользовательского режима. Для возврата в многопользовательский режим, который в Ubuntu используется по умолчанию, наберите следующее:

$ sudo init 2

Подсказка

Вы также можете использовать процесс init для остановки или перезагрузки машины: просто измените уровень запуска соответственно на 0 или на 6.

Ручной запуск и остановка сервисов

Вы можете запускать и останавливать скрипты вручную, запуская скрипты с параметром start или stop. Например, чтобы из командной строки остановить службу CUPS, введите:

$ sudo /etc/init.d/cupsys stop

Чтобы обратно запустить эту службу, введите:

$ sudo /etc/init.d/cupsys start

В большинстве скриптов также поддерживается использование параметра restart , который сначала выполнить остановку сервиса, а затем — его запуск. В большинстве скриптов можно также вывести список параметров, используемых со скриптом, если вы запустите скрипт и не укажите параметр:

greenfly@ubuntu:~$ sudo /etc/init.d/cupsys
Password:
Usage: /etc/init.d/cupsys {start|stop|restart|force-reload|status}

Отмена запуска скриптов при запуске системы

Чтобы отключить скрипт, вам следует знать уровень запуска, используемый по умолчанию. В Ubuntu уровень запуска, используемый по умолчанию, обычно устанавливается равным 2, но вы можете его перепроверить прежде, чем начнете отключать сервисы. Уровень запуска, используемый по умолчанию, определяется в файле /etc/inittab, чтобы его узнать введите следующее:

greenfly@ubuntu:~$ grep initdefault /etc/inittab
id:2:initdefault:

Как видно из этого примера, уровень запуска, используемый по умолчанию, действительно равен 2. Теперь переходим в директорий, в котором находятся все скрипты для этого уровня запуска (/etc/rc2.d) и находим скрипт, который вы хотите отключить. Чтобы отключить сервис, просто переименуйте скрипт, изменив букву S на D. Например, чтобы отключить сервис cupsys, наберите:

greenfly@ubuntu:~$ cd /etc/rc2.d
greenfly@ubuntu:/etc/rc2.d$ sudo mv S19cupsys D19cupsys

Чтобы снова его включить, переименуйте скрипт обратно, изменив D на S:

greenfly@ubuntu:~$ cd /etc/rc2.d
greenfly@ubuntu:/etc/rc2.d$ sudo mv D19cupsys S19cupsys

Если вы хотите сразу выключить сервис, вам, по-прежнему, потребуется остановить сервис так, как это было указано ранее, т. к. переименование вступит в силу только тогда, когда вы следующий раз перезагрузите систему (или измените уровни запуска).


Назад Оглавление Вперед



Средняя оценка 2 при 1 голосовавших

Комментарии