Чтобы обеспечить автоматический запуск какого-нибудь сервиса, нужно создать сценарий для его запуска и поместить его в каталоге /etc/init.d. Затем, в зависимости от уровня выполнения, в каталоге /etc/rcN.d нужно создать символические ссылки на этот сценарий для его запуска и останова.

Если вы хотите сами создать сценарий для запуска своего демона, можете воспользоваться шаблоном, приведенным в листинге 9.3.

Листинг 9.3. Шаблон для запуска демона

#!/bin/bash

#

# Подключаем библиотеку функций

. /etc/init.d/functions

#

# Определяем параметры

case "$!" in

start)

 # Запуск демона

 echo "Starting my_daemon..."

 daemon my_daemon

 touch /var/lock/subsys/my_daemon

 ;;

stop)

 # Останов демона

 killproc my_daemon

 rm -f /var/lock/subsys/my_daemon

 rm -f /var/run/my_daemon.pid

 ;;

status)

 # Выводим статистику работы

 ;;

restart | reload)

 # действия, выполняемые при перезагрузке демона

 ;;

*)

 # Произошел вызов без параметров

 echo "Usage: my_daemon {start|stop|status|restart|reload}"

 exit 1

esac

exit 0

После того, как в процессе инициализации системы будет выполнен загрузочный сценарий уровня но умолчанию, последним выполняется сценарий /etc/rc.local. Выполнив все сценарии, init переходит к другим записям в /etc/inittab, относящимся к текущему уровню. Обычно там остаются только перезапускаемые (respawn) действия: процессы, которые init запускает в фоне, а когда какой-нибудь из них завершается, запускает вновь. Так ведут себя процессы *getty, обслуживающие виртуальные консоли, и менеджер дисплеев системы X Window. Инициализация системы считается законченной, когда запушены все перезапускаемые процессы и init остается только следить за ними.

<p>9.2. Команды управления процессами</p><p>9.2.1. Иерархия процессов: ps и pstree</p>

О том, что команда ps позволяет просмотреть сведения обо всех процессах, протекающих в системе в данный момент, вы уже знаете (п.3.2). С ключом -f эта команда выводит как PID самого процесса, так и PPID его родителя, то есть по ее выводу можно восстановить всю структуру дерева процессов до их общего предка — процесса init. «Древовидный» взгляд может понадобиться, например, если вам нужно уничтожить целую группу процессов, происходящих от общего предка: в этом случае вы можете не убивать их по очереди, а просто послать сигнал TERM их родительскому процессу.

Команда pstree представляет дерево процессов сразу в наглядном виде:

$ pstree

init┬acpid

    ├atd

    ├bonobo-activati

   ...

    ├crond

    ├gconfd-2

    ├gdm-binary──gdm-binary┬X

    │                      └gnome-session

    ├gnome-panel

    ├gnome-settings-

    ├gnome-terminal┬bash─pstrее

    │              ├bash─su─bash─man─sh─sh—i┬less

    │              │                        └─nroff—iconv

    │              ├bash─su─bash

    │              └gnome-pty-helpe

   ...

    ├syslogd

    ├udevd

    └xinetd

Ключ -p выводит вместе с именем процесса его PID, а ключ -u — имя пользователя, запустившего процесс. Если в качестве аргумента указать PID, то команда выведет не все дерево, а только ветку потомков процесса с этим PID. Имя пользователя в качестве аргумента требует вывести все ветки процессов, запущенных этим пользователем: у них общего предка может и не быть.

<p>9.2.2. Информация о ресурсах системы: команды free, df, du</p>

Команда free показывает общее количество занятой и свободной памяти: физической, в разделе подкачки и в буферах ядра. По умолчанию объем памяти выводится в килобайтах, а ключи -b и -m позволяют измерять его в байтах и мегабайтах соответственно.

Ключ -s <число> требует опрашивать систему непрерывно, через каждые <число> секунд, пока вы не прервете выполнение команды, нажав Ctrl+С.

Команды df (disk free) и du (disk usage) показывают, сколько места доступно и занято на жестком диске.

Утилита df выводит сведения о дисковом пространстве на всех смонтированных в данный момент файловых системах — как локальных, так и сетевых:

$ df

Файловая система 1K-блоков    Исп Доступно Исп% смонтирована на

/dev/hda4        22200824 4630864 16442200  22% /

Перейти на страницу:

Все книги серии Полное руководство

Похожие книги