Зависимости systemd от девайса

Удев запускает

SUBSYSTEM=="input", KERNEL=="event[0-9]*", ENV{ID_USB_DRIVER}=="usbtouchscreen", SYMLINK+="input/ts",  MODE="0600" ,TAG+="systemd" ENV{SYSTEMD_WANTS}="ts_uinput.service"

Сервис

[Unit]
Description=touchscreen input
BindsTo=dev-input-ts.device
After=dev-input-ts.device
RequiresMountsFor=/etc/ts.env

[Service]
Type=forking
EnvironmentFile=/etc/ts.env
ExecStartPre=/opt/ts/prestart.sh
ExecStart=/usr/bin/ts_uinput -v -d
ExecStartPost=/opt/ts/poststart.sh

В prestart выполняю калибровку тача. Но сервис с окошком запускается до запуска ts_uinput несмотря на зависимости

[Unit]
Description=Kiosk
Requires=ts_uinput.service
BindsTo=dev-input-ts_uinput.device

[Service]
Type=simple
EnvironmentFile=/etc/kiosk.env
ExecStart=/opt/kiosk/bin/kiosk
WorkingDirectory=/opt/kiosk/
Restart=on-failure
RestartSec=30
User=kiosk

[Install]
WantedBy=multi-user.target

/dev/input/ts_uinput ссылка создается udev на устройство созданное демоном ts_uinput

SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="ts_uinput", SYMLINK+="input/ts_uinput",  MODE="0666"

Ответы (1 шт):

Автор решения: eri
#!/bin/bash

while [ "$(systemctl is-active ts_uinput)" == "activating" ]
do
sleep 1
done

скрипт в ExecStartPre сервиса киоска добавил.

→ Ссылка