Третьий тип заданий —
Просмотр заданий
Просмотреть задания команды Upstart, а также их статус можно с помощью команды initctl. Чтобы получить обзор того, что происходит в вашей системе, запустите такую команду:
$ initctl list
Результат работы будет довольно обширным, поэтому посмотрим лишь на два задания, которые могут быть найдены в типичном листинге. Вот простой пример состояния задачи:
mountall stop/waiting
Он сообщает о том, что задание mountall находится в статусе «останов/ожидание», и это означает, что оно не работает. К сожалению (на момент написания книги), вы не сможете использовать статус, чтобы определить, запущено ли уже задание или еще нет, поскольку статус «останов/ожидание» применяется также и к никогда не запускавшимся заданиям.
Службы, с которыми связаны процессы, будут отображаться в перечне статусов следующим образом:
tty1 start/running, process 1634
Эта строка говорит о том, что задание tty1 запущено и процесс с идентификатором ID 1634 выполняет его. Не все службы обладают связанными процессами.
примечание
Если вам известно имя задания job, можно просмотреть его статус напрямую с помощью команды initctl status job.
Информация о статусе в результатах вывода команды initctl (например, stop/waiting) может сбивать с толку. Левая часть (до символа /) является
Случай с заданием mountall немного другой, поскольку задачи не остаются в рабочем состоянии. Статус «останов/ожидание» обычно говорит о том, что данное задание стартовало и завершило свою задачу. По завершении задачи цель меняется с запуска на останов, и теперь задание ожидает дальнейших указаний команды Upstart.
К сожалению, как отмечалось ранее, поскольку задания, которые никогда не запускались, также обладают статусом «останов/ожидание», невозможно установить, запускалось ли какое-либо задание, если вы не включили режим отладки и не заглянули в журналы, как описано в подразделе 6.5.5.
примечание
Вы не увидите те задания, которые были запущены в системе с помощью команды Upstart в режиме совместимости со стандартом System V.
Переходы между состояниями заданий
Существует множество состояний заданий, однако для переключения между ними установлен четкий порядок. Вот как, например, запускается типичное задание.
1. Все задания начинаются в статусе «останов/ожидание».
2. Когда пользователь или системное событие запускают задание, цель задания меняется с останова на запуск.
3. Команда Upstart изменяет состояние задания с ожидающего на стартующее, поэтому теперь его статус — «запуск/запуск» (start/starting).
4. Команда Upstart порождает событие starting
5. Задание выполняет все, что необходимо сделать для состояния запуска.
6. Команда Upstart изменяет состояние задания со стартующего на предстартовое и порождает событие pre-start
7. Задание выполняется своим чередом и проходит еще через несколько состояний, пока не достигает работающего состояния.
8. Команда Upstart порождает событие started.
Завершение задания содержит похожий набор изменений состояния и событий. Обратитесь к странице руководства upstart-events(7), чтобы узнать подробности обо всех состояниях и переходах для обеих целей.
6.5.3. Конфигурация команды Upstart
Исследуем два файла конфигурации: один для задачи mountall, а другой — для сервиса tty1. Подобно другим файлам конфигурации, данные файлы расположены в каталоге /etc/init и называются mountall.conf и tty1.conf. Файлы конфигурации составлены из небольших фрагментов, которые называются
Для начала откройте на своем компьютере файл mountall.conf. Отыщите в первой строфе нечто подобное приведенной ниже строке:
description "Mount filesystems on boot"
Эта строфа дает краткое текстовое описание задания.
Далее вы увидите несколько строф, описывающих процесс запуска задания mountall:
start on startup
stop on starting rcS