Найти в Дзене

Venom Linux (управление процессами в SysVinit на примере chrony)

Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции, это некая инструкция по работе с системой инициализацией SysVinit (в основном для собственного пользования) в Venom Linux (условия таковы установка с использованием UEFI на файловую систему BTRFS на чистый накопитель) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности. Для примера установим пакет chrony и настроим синхронизацию времени через интернет по NTP протоколу. Приступим ... для этого проверим есть ли в репозитории Venom пакет chrony командой: sudo scratch search chrony выхлоп данной команды это подтверждает, следующая команда позволяет проверить был ли установлен пакет в систему sudo scratch isinstalled chrony как видим команда "молчит" следовательно не установлено(тут немного сомнения у меня), но можно пройтись поиском sudo find / -name chrony тут вероятнее надо было искать "демона" (мысль пришла во время написания поста) sudo find / -na

Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции, это некая инструкция по работе с системой инициализацией SysVinit (в основном для собственного пользования) в Venom Linux (условия таковы установка с использованием UEFI на файловую систему BTRFS на чистый накопитель) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности.

Для примера установим пакет chrony и настроим синхронизацию времени через интернет по NTP протоколу. Приступим ...

поиск и установка пакета chrony
поиск и установка пакета chrony

для этого проверим есть ли в репозитории Venom пакет chrony командой:

sudo scratch search chrony

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

sudo scratch isinstalled chrony

как видим команда "молчит" следовательно не установлено(тут немного сомнения у меня), но можно пройтись поиском

sudo find / -name chrony

тут вероятнее надо было искать "демона" (мысль пришла во время написания поста)

sudo find / -name chronyd

давайте не будем тянуть и установим нужный нам пакет

sudo scratch install chrony
процесс установки chrony
процесс установки chrony

Итак, пакет установили, давайте проверим есть ли файл конфигурации и сконфигурирован ли он(кстати в Arch, Void и Gentoo мне не пришлось конфигугировать в ручную) и есть ли он в системе воспользуемся поиском

поиск и создание конфига chrony
поиск и создание конфига chrony
sudo find / -name chrony.conf

как видим его нет создадим и внесем настройки с помощью всем известного текстового редактора

sudo nano /etc/chrony.conf
на скрине конфиг chrony.conf  содержит ошибку в 7 строке
на скрине конфиг chrony.conf содержит ошибку в 7 строке
...
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 10 3 # кстати тут я на скрине ошибся, намеренно что бы показать ошибку
logdir /var/log/chrony
...
создание скрипта автозапуска chrony из шаблона
создание скрипта автозапуска chrony из шаблона

далее посмотрим что за скрипты у нас в загрузке системы инициализации

ls /etc/rc.d/

и так имеются три скрипта за основу возьмем dhcpcd

cp /etc/rc.d/dhcpcd /etc/rc.d/chronyd

проверим

ls /etc/rc.d/

и приступим к редактированию

sudo nano /etc/rc.d/chronyd
скрипт автозапуска chrony
скрипт автозапуска chrony

как видим по сути нам важны переменные NAME, PROG, PID и OPTS

  • NAME - название программы
  • PROG - полный путь до программы
  • PID - полный путь до файла который будет содержать ID процесса
  • OPTS - опции для запускаемой программы то бишь параметры

далее мы видим оператор выбора case подправим только вариант выбора status я добавил строку chronyc sources для того что бы при вызова статуса видеть что происходит с chrony

конфиг системы rc.conf
конфиг системы rc.conf

ну и самое главное добавим наш скрипт в SysVinit для автоматического запуска отредактировав конфиг. Допишем в параметр DEAMONS

sudo nano /etc/rc.conf
...
DEAMONS="... chronyd ..."
...
тестовый запуск chrony c кривым конфигом
тестовый запуск chrony c кривым конфигом

что ж, пришло время протестировать запуск, давайте запустим демона проверим все ли правильно с конфигом chrony.conf

sudo chronyd -f /etc/chrony.conf

как видим из сообщения в 7 строке что то не правильно, давайте исправлять

sudo nano /etc/chrony.conf
верный конфиг chrony
верный конфиг chrony

пора переходить к испытанию нашего скрипта для запуска демона

проверка работоспособности демона
проверка работоспособности демона

для наглядности проверил все действия над процессом

sudo /etc/rc.d/chronyd restart
sudo /etc/rc.d/chronyd stop
sudo /etc/rc.d/chronyd start
sudo /etc/rc.d/chronyd status

как вы поняли при исполнении конструкции команды со status выполняется команда chronyc sources, которая описана выше

htop
htop

и конечно "вишенка на торте" посмотрим на нее через htop процесс трудится в нашей системе(последняя строка)

перезапуск системы
перезапуск системы

давайте перезапустим систему как видим из скрина chronyd успешно запустился

P.S. В целом немного повозившись с SysVinit поняв ее основы и как пишутся скрипты запуска, особой сложности я не ощутил.

За основу взято VenomWiki, так же из других Wiki и переписаны под себя
За сим откланиваюсь...