Зависимости камеры (/dev/video0) в службе systemd Ubuntu 16.04

Мне нужно запустить некоторые службы при загрузке, которые я успешно выполнил с помощью системных служб. (Много ответов уже доступно).

Теперь одной из моих служб требуется доступ к /dev/video0 во время загрузки, когда определенный пользователь вошел в систему. (Я выполняю автоматический вход в систему, который работает нормально). Итак, как мне проверить, доступен ли /dev/video0 перед запуском моей службы systemd во время загрузки.

Я наткнулся на что-то под названием udev для этого, я следовал эта ссылка, но я не получаю желаемого результата, так как после редактирования файлов /lib/udev/rules.d/99-systemd.rules, как указано в ссылке, и запуска моей службы вручную, она не запускается, любая помощь приветствуется.


person ASHISH KUMAR VERMA    schedule 04.12.2017    source источник


Ответы (1)


Наконец, после дня борьбы я нашел ответ - я сделал скрипт в /etc/systemd/system, который содержит

[Unit]
Description='some description of my file write according to you'
[Service]
Type=forking
ExecStart='path to script'
[Install]
WantedBy=multi-user.target

и он выполняет скрипт, который содержит

#!/bin/bash
modprobe uvcvideo

Теперь после перезагрузки все службы работают правильно. Команда mod probe uvcvideo проверяет наличие запущенного видеодрайвера и включает его во время загрузки, чтобы он был доступен для моего процесса systemd.

Спасибо

person ASHISH KUMAR VERMA    schedule 04.12.2017
comment
Это можно упростить, вызвав modprobe напрямую из ExecStart: ExecStart=/sbin/modprobe uvcvideo - person Mark Stosberg; 04.12.2017