Разбор контрольной работы
- Где SystemD берёт конфигурацию и в каком порядке её считывает? Ответ: читаем документацию в sytemd.unit.
- Что находится в выводе команды
systemctl list-units
и с какими правами можно запускать данную команду? Ответы:- Читаем документацию в
systemctl
- Пытаемся запустить приложение и проверить требования.
- Читаем документацию в
-
Настроить приложение для работы в качестве службы SytemD.
- Получить приложения, которые будут исполнятся.
Скачать файл на хост-системе, а затем перенести в 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
- Распаковать архив
tar xf data.tgz
-
Научиться запускать приложение
-
Поставить интерпретатор языка, на котором написано приложение.
sudo apt install ruby
- Настроить конфигурационный файл приложения
PID-файл должен располагаться в каталоге /var/run
.
Журналы должны располагаться в каталоге /var/log/...
. Указанный каталог должен быть создан.
-
Запустить приложение БЕЗ использования SystemD.
При этом мы понимаем, что приложению необходимы права суперпользователя для работы.
-
Настроить SystemD, чтобы данная служба успешно работала под его управлением.
Надо сформировать файл .service
:
Увиденные нарушения:
- Опять есть фоновые приложения, которые останавливаются с помощью Ctrl+Z.
- Данные приложения пишутся в домашний каталог.
- Само приложение было перенесено в каталог
/etc
. Данный каталог предназначен только для конфигурационных файлов. - В .service-файле не указан путь к PID-файлу. Потенциально SystemD умный и сам поймёт за каким процессом следить, но не стоит на это полагаться и всегда указывать соответствующий файл.
- Приложению почему-то передаются аргументы, хотя приложение их не обрабатывает. Каждое приложение получает данные по-своему и необходимо для каждогого из них садиться и разбираться: как это происходит.