如何在启动服务之前等待/ dev / video0


11

我可以编写依赖于安装的单元文件,因为我可以列出它们,然后将其添加到中Requires=xxx,例如:

# systemctl list-units | grep data
mount-data.service    loaded active exited    Manage the data partition

我想做的是在将网络摄像头插入设备后启动服务。systemctl list-units | grep video0什么也不返回。有人可以简单地向我解释一下,我该怎么做才能确保做到这一点?我不希望发生的是启动服务的时候/dev/video0/dev/video1等出现。

我从这篇文章中得到了一个线索,我将需要编写udev规则,但是我不知道在这里到底需要做什么。帮帮我?

Answers:


11

我想通了。首先,将以下行添加到udev规则文件夹中的一个文件中,/lib/udev/rules.d/99-systemd.rules

KERNEL=="video0", SYMLINK="video0", TAG+="systemd"
KERNEL=="video1", SYMLINK="video1", TAG+="systemd"

然后,您可以在服务单元文件中绑定到视频设备:

[Unit]
BindsTo=dev-video0.device
After=dev-video0.device
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.