Документация

Просмотр состояния о системе

  • Используйте команды list-units и status для отображения списка модулей (unit).
    • Для решения каких задач предназначены данные команды?
    • Можно ли использовать обе команды для достижения одинаковых целей? Какую информацию можно получить с помощью одной из команд, которую нельзя получить с помощью другой?
  • Найдите все цели (тип модулей target), которые есть у systemd.
    • Используя команду list-dependencies отобразите модули, которые зависят от данных целейЙ
    • multi-user.target
    • network.target
    • basic.target
    • runlevel1.target

Взаимодействие со службой nginx

  1. Установите пакет nginx.
  2. После установки служба nginx должна автоматически запуститься. После этого можно подключиться к данному веб-серверу.
    • Если у вас сетевой интерфейс настроен в режиме моста, тогда в адресной строке браузера надо указать http://ip-адрес-виртуальной-машины:80
    • Если у вас сетевой интерфейс работает в режиме NAT, тогда в правилах проброса надо добавить правило для проброса порта 22080 на порт виртуальной машины 80. После этого служба будет доступна по адресу http://localhost:22080
  3. Остановите службу nginx. Удостоверьтесь, что браузер не может к ней подключиться.
  4. Запустите службу nginx. Удостоверьтесь, что браузер может подключиться к веб-серверу.
  5. Перезапустите виртуальную машину. Удостоверьтесь, что служба запущена с помощью команды systemctl status.
  6. Отключите автоматический запуск службы nginx после запуска. Перезапустите виртуальную машину. Удостоверьтесь, что служба не запущена.
  7. Запустите вручную службу nginx.

Создание собственной службы

  1. Установите интерпретатор языка python3.
  2. Скопируйте следующий код в файл long-living-app.py:

    #!/usr/bin/env python3
    
    import time
    
    def main():
        log = open('/var/run/long-living-app-log', mode='a')
        while True:
            log.write("I am alive!\n")
            log.flush()
            time.sleep(5)
    
    if __name__ == "__main__":
        main()
    
  3. Создайте файл конфигурации для службы systemd. Назовите файл my-first-daemon.service.
    • В качестве шаблона используйте пример из man-страницы для systemd.service. Смотрите раздел examples.
    • В качестве строки для запуска используйте /usr/bin/python3 ПУТЬ-К-long-living-app.py.
  4. Разместите конфигурационный файл в каталоге для системных служб /etc/systemd/system.
  5. Дайте команду на перечитывание конфигурации служб, daemon-reload.
  6. Посмотрите на статус службы my-first-daemon.service.
  7. Запустите данную службу. Убедитесь, что она работает.
    • Получите статус работы у systemd.
    • Проверьте, что в файл /var/run/long-living-app-log каждые 5 секунд записывается новая строка I am alive!.
  8. Перезапустите систему и убедитесь, что служба не работает.
  9. Настройте службу так, чтобы она запускалась при входе в систему. Перезапустите систему и убедитесь, что служба начала свою работу.
  10. Остановите службу и отключите её автоматический запуск.ж

Создание задачи, выполняемой по расписанию

  1. Скопируйте следующий код в файл one-shot-service.bash

    #!/bin/bash
    
    echo "I was run on $(date +%f-%R:%S)" >> /var/run/timer-service.log
    
  2. Создайте файл конфигурации службы systemd. Назовите файл my-one-short-task.service.
    • В качестве примера используйте oneshot-service.
    • В качестве пути для запуска укажите путь к службе.
    • Удалите секцию Install.
  3. Установите конфигурацию службы и убедитесь, что можете её запустить с помощью systemd.
  4. Добавьте файл конфигурации для расписания запуска службы. Назовите файл my-one-short-task.timer.
    • В качестве основы для файла используйте пример из Wiki ArchLinux
    • В качестве времени для старта используйте 60 секунд после старта системы.
    • В качестве повторной активации используйте 60 секунд после запуска службы.
  5. Разместите таймер в конфигурационном каталоге systemd рядом с конфигурацией службы.
  6. Перезагрузите конфигурацию systemd.
  7. Проверьте состояние таймера - он должен быть деактивирован.
  8. Установите таймер и перезагрузите систему.
  9. Удостоверьтесь, что через минуту после запуска системы таймер сработал. Проверить можно в журнале работы таймера, службы, или по содержимому файла /var/run/timer-service.log.
  10. Удостоверьтесь, что ещё через минуту после запуска системы таймер сработал.
  11. Отключите автоматический запуск таймера при входе в систему. Перезагрузите систему и убедитесь, что таймер и служба неактивны.