Прежде чем применять настройки - внимательно читаем. От этого зависит работоспособность системы |
| В системе реализована работа billd как системного юнита, при этом управление плагинами переносится в webinterface |
| Внимание, после запуска юнита, система будет искать настройки плагинов в вебинтерфейсе! Пока вы настриваете, может получится двойной запуск! |
nano /etc/systemd/system.billd.service |
И переносим туда следующие данные
[Unit] Description="АСР Казна-39" - Accounting Control Daemon After=network.target mysql.service mariadb.service StartLimitIntervalSec=0 [Service] Type=simple User=root Group=root WorkingDirectory=/usr/abills ExecStart=/usr/abills/libexec/billd -d Restart=always RestartSec=3 # Logging StandardOutput=journal StandardError=journal SyslogIdentifier=billd # Hardening NoNewPrivileges=true PrivateTmp=true ProtectSystem=off ProtectHome=false # Resource limits LimitNOFILE=65536 TasksMax=10000 [Install] WantedBy=multi-user.target |
Делаем его исполняемым
service billd enable |
Запускаем
service billd start |
Перезапуск
service billd restart |
У администратора должны быть права 5:12 "Разрешить глобальные настройки системы".
Переходим в меню:
Настройка>Системные настройки>Настройки ядра

Вкладка "Периодические процессы"

Далее вам надо добавить плагин:
Нажимаем "+" и выбираем плагин, который нам надо выполнить:

Если требуется - описываем аргументы запуска плагина (Точно такие-же как и в кроне)
Выбираем время запуска (отличие от от крна, что можно выбрать и секунду запуска, если поле секунда не заполнено или там стоит "-" - то секунды НЕ учитываются.
Поле "Таймаут" - защита от зависания плагина, указывается в секундах, время, по истечении которого плагин будет принудительно остановлен, предотвращает зависание.
В системе предусмотрено каскадное выполнение плагинов:
Для этого надо выбрать Родительский плагин и очерёдность дочернего плагина (равносильно работы в кроне через точку с запятой)
Пример в кроне:
*/5 * * * * /usr/abills/libexec/billd equipment_pon; /usr/abills/libexec/billd equipment_pon CPE_FILL=1 TRANSACTION=1 ALERT=1 |
То в вебинтерфейсе это реализовывается следующим образом:

Родителем мы оказываем первый запускаемы плагин, порядковый номер, если мы запускаем несколько плагинов для дочернего процесса.
Для активации плагина - ставим чекбокс "Активно"
Настройки плагина сохраняются БЕЗ перечитывания вебинтерфейса, применяются моментально, системный юнит начинает выполнение моментально
Для предотвращения двойных запусков - реализован чекбокс защиты PID, включено по умолчанию, запрещает одновременный запуск олного и того-же плагина одновременно!
* - любое значение */N - каждые N единиц (минут, часов и т.д.) A - одно конкретное значение A,B,C - перечисление значений A-B - диапазон A-B/N - диапазон с шагом |
cron_sec : 0..59 cron_min : 0..59 cron_hour : 0..23 cron_dom : 1..31 cron_mon : 1..12 cron_dow : 0..7 (0 и 7 обычно означают воскресенье) |
Работает так же, как cron_min, но для секунд (0-59). Используется только в режиме демона billd, чтобы запускать задания чаще, чем раз в минуту.
Для временного отключения расписания достаточно установить снять чекбокс и применить изменения
По умолчанию защита включена.
Чекбокс выключен - использовать "облегчённую" логику:
Чекбокс включён - включить принудительную PID-защиту для плагина, даже если он запускается через демон:
Ограничение времени работы плагина в секундах.
0 - таймаут не задан, поведение зависит от настроек BILLD:
>0 - жёсткий предел для данной строки расписания:
Позволяет строить цепочки "мастер/слейв" внутри одного расписания.
В одном такте работы демона:
id = 10 plugin_name = equipment_pon plugin_args = "" cron_min = * cron_hour = * ... active = 1 protect_pid = 1 parent_id = 0 chain_order = 0 |
id = 11 plugin_name = equipment_pon plugin_args = CPE_FILL=1 TRANSACTION=1 ALERT=1 cron_min = * (для слейва cron_* игнорируются) cron_hour = * ... active = 1 protect_pid = 1 parent_id = 10 (ID мастера) chain_order = 1 |
В результате при каждом срабатывании мастера (строка 10):