Алексей Стахнов

Linux


Скачать книгу

ntsysv (рис. 6.1), /usr/sbin/setup или графическую программу Control-panel (рис. 6.2).

      Рис. 6.1. Программа ntsysv

      Рис. 6.2. Программа Control-panel

      Можно сконфигурировать набор доступных сервисов и вручную. Для запрета старта какого-либо сервиса достаточно просто удалить соответствующую ссылку (SXXlalala) из необходимого каталога /rcX.d, а для разрешения – создать соответствующую ссылку в нужном каталоге /rcX.d. Однако не следует забывать помимо стартовой ссылки создавать стоповую, иначе возможны проблемы, когда система некорректно завершит функционирование сервиса, для которого забыли создать стоповую ссылку. А как же корректно установить порядковый номер у соответствующей ссылки? Конечно, можно чисто эмпирически подобрать номер, исходя из функций, выполняемых сервисом. Но давайте заглянем в любой файл в каталоге /etc/rc.d/init.d/, к примеру, в файл anacron:

      #!/bin/sh

      # Startup script for anacron

      # chkconfig: 2345 95 05

      # description: Run cron jobs that were left out due to downtime

      # Source function library.

      . /etc/rc.d/init.d/functions

      [-f /usr/sbin/anacron] || exit 0

      prog="anaсron"

      start () {

      echo -n $"Starting $prog: "

      daemon anacron

      RETVAL=$?

      [$RETVAL – eq 0] && touch /var/lock/subsys/anacron

      echo

      return $RETVAL

      }

      stop() {

      if test "x" pidof anacron""!= x; then

      echo -n $"Stopping $prog:»

      killproc anacron

      echo

      fi

      RETVAL=$?

      [$RETVAL – eq 0] && rm -f /var/lock/subsys/anacron

      return $RETVAL

      }

      case "$1" in

      start)

      start

      ;;

      stop)

      stop

      ;;

      status)

      status anacron

      ;;

      restart)

      stop

      start

      ;;

      condrestart)

      if test "x" pidof anacron""!= x; then

      stop

      start

      fi

      ;;

      *)

      echo $"Usage: $0 {start|stop|restart|condrestart|status}"

      exit 1

      esac

      exit 0

      ###################################################################

      Обратите внимание на часть заголовка файла:

      #!/bin/sh

      # Startup script for anacron

      # chkconfig: 2345 95 05

      # description: Run cron jobs that were left out due to downtime

      Помимо указания, какой командной оболочкой необходимо воспользоваться, там есть строчка

      # chkconfig: 2345 95 05

      Из которой следует, что этот скрипт может использоваться во втором, третьем, четвертом и пятом уровнях выполнения, а цифры 95 и 05 – порядковый номер для стартового (95) и стопового (05) скриптов. Обратите внимание – в сумме эти две цифры составляют 100. Таким образом, достаточно просто добиться того, чтобы порядок останова сервисов был в точности обратный стартовому. Description в данном файле – комментарий, который linuxconf выдает на экран для объяснения роли данного сервиса.

      Если внимательно посмотреть скрипт, то сразу видно, что опций у него больше, чем стандартные start и stop. Имеются еще restart, condrestart и status. Старт, останов и проверка состояния демона выполняются рядом функций типа daemon, killproc, status. Процедуры daemon, killproc, status – определяются в файле /etc/rc.d/init.d/functions (а тот пользуется определениями из /etc/sysconfig/init). Они предназначены для старта, останова и проверки статуса демона (сервиса).

      Функция daemon обеспечивает старт сервиса. При этом можно учесть особенности