Управление сценариями запуска вручную
🕛 19.06.2009, 12:47
Если вам необходимо разрешить или запретить запуск сервера с помощью сценариев SysV, вы можете сделать это, изменяя сценарии запуска или ссылки на них. Проще всего запретить запуск сервера, удалив соответствующий сценарий из каталога сценариев SysV. Этим вы добьетесь того, что сервер не будет присутствовать ни на одном из уровней выполнения системы, но такое решение нельзя назвать элегантным. Кроме того, если вам потребуется не запретить, а разрешить выполнение сервера, вам все равно придется искать способы сделать это.Более приемлемое решение данной задачи - переименовать ссылку на сценарий запуска в каталоге, соответствующем требуемому уровню выполнения. Например, для того, чтобы запретить выполнение сервера, надо переименовать ссылку, заменив символ "S" в начале ее имени на символ "К". Чтобы разрешить работу сервера, надо сделать обратную замену. Сложности, возникающие при этом, связаны с тем, что последовательность запуска серверов может отличаться от последовательности их завершения. Для того чтобы решить эту проблему, надо найти ссылки на этот сценарий в каталогах, соответствующих различным уровням запуска. Если хотя бы на одном уровне выполняется нужное вам действие, вы узнаете требуемый номер. Например, в результате выполнения приведенной ниже команды отображаются все ссылки на сценарий запуска системы Mandrake, соответствующий почтовому серверу Postfix.
$ find /etc/red -name "*postfix" /etc/rc.d/rcO.d/K30postfix /etc/rc.d/rcl.d/K30postfix /etc/rc.d/rc2.d/S80postfix /etc/rc.d/rc3.d/S80postfix /etc/rc.d/rc4.d/S80postfix /etc/rc.d/rc5.d/S80postfix /etc/rc.d/гсб.d/K30postfix /etc/rc.d/init.d/postfix
Полученные результаты позволяют выяснить, что Postfix запускается на уровнях выполнения 2-5 и порядок запуска этого сервера определяется номером 80. Аналогично, работа сервера завершается на уровнях О, 1 и 6, и порядок завершения определяется номером 30. Если вы хотите запретить выполнение Postfix на уровне 3, вам надо переименовать ссылку S80postfix в каталоге, соответствующем этому уровню, и назначить ей имя K30postfix.
Если вам нужно временно запустить или остановить сервер, не перезагружая компьютер, либо если вы захотите перезапустить сервер после изменения его конфигурационного файла, вы можете вызвать сценарий запуска вручную и передать ему параметр start или stop. Например, для того, чтобы немедленно прекратить работу сервера Postfix в системе Mandrake, вам надо выполнить следующую команду:
# /etc/rc.d/init.d/postfix stop
Большинство версий Linux при попытке завершить работу сервера выводит специальное сообщение. Кроме того, после остановки сервера отображается дополнительное сообщение о том, насколько успешно выполнена данная операция. При запуске сценария SysV появляется сообщение об успешном запуске сервера. (Эти сообщения вы видите на экране при загрузке компьютера.)
Если вы работаете с системой Slackware, то вместо переименования, добавления и удаления сценариев запуска или ссылок на них вам надо отредактировать один файл сценария, соответствующий требуемому уровню выполнения. Так, например, чтобы изменить поведение системы на уровне 4, вам надо внести изменения в файл /etc/rc.d/rc. 4. Заметьте, что для многих серверов сценарии запуска отсутствуют; эти серверы запускаются с помощью /etc/rc. d/rc. inet2 (программы поддержки базовых сетевых средств, используемых этими серверами, запускаются посредством /etc/re . d/rc .inetl). Для того чтобы изменить набор серверов, выполняемых в системе, надо вручную отредактировать эти сценарии так, как будто вы имеете дело с локальными сценариями запуска.