Работа со службами в NapiLinux/Armbian
Для остановки, запуска, перезапуска и проверки состояния служб необходимо знать как работать с сервисом systemd.
Службы под управлением сервиса systemd управляются через утилиту systemctl.
Общие параметры запуска
systemctl start|stop|restart|enable|disable|status <service>
Уметь работать с сервисами полезно при отладке и настройке датчиков, шлюзов, конфигураций.
systemctl stop telegrafостановит сервис telegrafsystemctl start telegrafзапустит сервис telegrafsystemctl restart telegrafперезапустит сервис telegraf (следует выполнять, когда вы исправили конфиг)systemctl start telegrafвыведет статус сервиса telegraf
Даже остановив или запустив сервис - при перезагрузке системы, он не "вспомнит" последнее свое состояние.
Чтобы сервис запускался при загрузке следует его "включить" командой (на примере сервиса telegraf) systemctl enable telegraf, а чтобы сервис не запускался при загрузке, его следует "выключить" командой systemctl disable telegraf.
Рассмотрим несколько примеров.
Служба mbusd
Служба моста Modbus RTU - Modbus TCP mbusd перехватывает доступ к порту, на котором находятся датчики и невозможно прочитать датчик вручную. Допустим mbusd не работает как полагается и нам надо проверить отвечает датчик или нет.
Остановим mbusd
systemctl stop mbusd
Прочитаем датчики вручную
root@napi-rk3308b-s:~# modpoll -m rtu -b 115200 -a 2 -r 1 -c 1 /dev/ttyS3
modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2021 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 2, start reference = 1, count = 1
Communication.........: /dev/ttyS3, 115200, 8, 1, even, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table
-- Polling slave... (Ctrl-C to stop)
[1]: 2
-- Polling slave... (Ctrl-C to stop)
[1]: 2
-- Polling slave... (Ctrl-C to stop)
[1]: 2
-- Polling slave... (Ctrl-C to stop)
Видим, что датчик читается и дело в настройках mbusd (внимательно проверяйте параметры порта !)
Включим, чтобы сервис mbusd стартовал при загрузке системы
systemctl enable mbusd