Добрый день!
Необходима более свежая версия systemd (236+). Планируется ли его обновление в ближайшее время в базовой прошивке?
Обновлять с apt-get такие вещи на работающих объектах опасаюсь, и в перспективе хотелось бы не выполнять этот шаг при установке новых объектов.
Пока systemd из дистрибутива https://packages.debian.org/stretch/systemd
Обновлять - вместе с переходом на более свежий, пока в планах нет. А чего не хватает в 232-25+deb9u12?
Нужна возможность вывода некоторых логов в отдельные файлы для автоматической обработки без “мусора” других программ.
С 241 из main backports сейчас хорошо работает. Также удобно удалять логи избранных сервисов.
А можете подробнее написать, как вы это настраиваете и используете? Может быть правда из бэкпортов поставим в стандартный образ, ещё до обновления на buster.
Имеем проблемы с wb-mqtt-serial, хочется полностью отслеживать её активность и автоматически разруливать некоторые сценарии.
В новом systemd можно перенаправлять вывод логов для любых сервисов в отдельные потоки/файлы. Соответственно, можно будет запускать wb-mqtt-serial в режиме отладки не засоряя /var/log/messages.
Плюс, это дает гибкости в настройке логирования других сервисов.
Установка systemd 241
echo "deb http://ftp.debian.org/debian stretch-backports main" | tee /etc/apt/sources.list.d/backports.list
apt-get update
apt-get install systemd -t stretch-backports
Патч до systemd
#!/bin/bash
function init_to_systemd {
SERVICE_NAME="$1"
SYSTEMD_GENERATED_FILE="/run/systemd/generator.late/$1.service"
INITD_FILE="/etc/init.d/$1"
NEW_MODERN_SYSTEMD_FILE="/usr/bin/iqnergy/installer/$1.service"
INSTALLED_MODERN_SYSTEMD_FILE="/lib/systemd/system/$1.service"
if test -f "$NEW_MODERN_SYSTEMD_FILE" && \
! cmp -s "$NEW_MODERN_SYSTEMD_FILE" "$INSTALLED_MODERN_SYSTEMD_FILE" ; then
cp "$NEW_MODERN_SYSTEMD_FILE" "$INSTALLED_MODERN_SYSTEMD_FILE"
if test -f "$SYSTEMD_GENERATED_FILE"; then
rm "$SYSTEMD_GENERATED_FILE"
fi
if test -f "$INITD_FILE"; then
rm "$INITD_FILE"
fi
systemctl daemon-reload || echo "Error of reload daemon-reload"
systemctl enable $SERVICE_NAME || echo "Enable service $SERVICE_NAME error"
service $SERVICE_NAME restart || echo "Error of restart $SERVICE_NAME"
fi
}
init_to_systemd wb-mqtt-serial
wb-mqtt-serial.service
[Unit]
Description="MODBUS<->MQTT"
After=remote-fs.target
After=mosquitto.service
[Service]
Type=simple
NotifyAccess=main
ExecStart=/usr/bin/wb-mqtt-serial -c /etc/wb-mqtt-serial.conf -d
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/wb-mqtt-serial.pid"
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target