让 systemd 服务等待设备,一般来说

让 systemd 服务等待设备,一般来说

目前,我正在使用以下配置来确保我的显示管理器等到 DRM 驱动程序加载后才启动(否则 X.org 无法启动):

udev 规则:

ACTION=="add", SUBSYSTEM=="drm", KERNEL=="card0", TAG+="systemd"

systemd 服务覆盖:

[Unit]
Requires=sys-devices-pci0000:00-0000:00:01.0-0000:01:00.0-drm-card0.device
After=sys-devices-pci0000:00-0000:00:01.0-0000:01:00.0-drm-card0.device

这虽然完成了工作,但是却显得很脆弱。

是否可以缩短Requires=After=行以泛泛地引用 DRM 设备,而不使用完整的 PCI 路径?

我正在使用 Ubuntu 19.04。

编辑以满足重复警察的要求:

建议的重复问题询问在设备插入时自动启动 systemd 服务。这个问题是关于等待启动服务已自动启动直到初始化给定设备为止。两个不同的问题。请阅读它们。

答案1

是的,如果标记的设备在 /dev 中有一个关联节点,则可以直接使用它:

Requires=dev-dri-card0.device
After=dev-dri-card0.device

相关内容