Обновление версии systemd

Добрый день!
Необходима более свежая версия 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
2 Likes