1. Где SystemD берёт конфигурацию и в каком порядке её считывает? Ответ: читаем документацию в sytemd.unit.
  2. Что находится в выводе команды systemctl list-units и с какими правами можно запускать данную команду? Ответы:
    • Читаем документацию в systemctl
    • Пытаемся запустить приложение и проверить требования.
  3. Настроить приложение для работы в качестве службы SytemD.

  4. Получить приложения, которые будут исполнятся.

Скачать файл на хост-системе, а затем перенести в playground

  • Используя браузер скачать файл.
  • Используя scp перенести файл на удалённый компьютер.

scp откуда куда

При указании удалённого сервера необходимо предоставить:

  • Имя пользователя
  • Название компьютера (его сетевое имя)
  • Местоположение на удалённом компьютере
scp some-file user@10.7.223.48:~

Скачать прямо в playground

  • Зайти по SSH на компьютер
  • Воспользоваться приложением wget для скачивания
sudo apt install wget
wget https://ya.ru -O data.tgz
  1. Распаковать архив
tar xf data.tgz
  1. Научиться запускать приложение

  2. Поставить интерпретатор языка, на котором написано приложение.

sudo apt install ruby
  1. Настроить конфигурационный файл приложения

PID-файл должен располагаться в каталоге /var/run.

Журналы должны располагаться в каталоге /var/log/.... Указанный каталог должен быть создан.

  1. Запустить приложение БЕЗ использования SystemD.

    При этом мы понимаем, что приложению необходимы права суперпользователя для работы.

  2. Настроить SystemD, чтобы данная служба успешно работала под его управлением.

Надо сформировать файл .service:

Увиденные нарушения:

  1. Опять есть фоновые приложения, которые останавливаются с помощью Ctrl+Z.
  2. Данные приложения пишутся в домашний каталог.
  3. Само приложение было перенесено в каталог /etc. Данный каталог предназначен только для конфигурационных файлов.
  4. В .service-файле не указан путь к PID-файлу. Потенциально SystemD умный и сам поймёт за каким процессом следить, но не стоит на это полагаться и всегда указывать соответствующий файл.
  5. Приложению почему-то передаются аргументы, хотя приложение их не обрабатывает. Каждое приложение получает данные по-своему и необходимо для каждогого из них садиться и разбираться: как это происходит.