systemd 在(每个)挂载上执行脚本

systemd execute script on (every) mount

我第一次与 systemd 纠缠不清,无法真正按照我的需要将其设置为 运行,已经阅读了 Google 和手册页,但运气不佳..

我需要在每次 插入 USB 闪存驱动器时执行一个脚本 (下一步是在移除驱动器时 运行 一个脚本..但首先要做的是..)

我只能让它触发一次,或者在一个循环中触发(幸运的是,它很快就会因启动限制错误而失败)只要运行s因为驱动器保持连接。我无法在插入时仅将其设置为 运行,并且在每次下一次新插入时都设置为 运行。

[Unit]
Description=USB connected trigger
RequiresMountsFor=/media/usb

[Service]
Type=oneshot
ExecStart=/home/hu/hu_restart.sh

我一直在尝试不同的类型和重启选项,但没有成功.. hu_restart.sh 只是一个 运行 存在的脚本,它不会保持活动状态。

有人吗?

一些背景:我有一个脚本 运行 宁某种汽车 "head unit" 需要知道 USB 驱动器是否可用(或不可用)来更改音乐 "source". hu_restart.sh 有点像 hack,它会重新启动 head unit 脚本。开始时它会检查 USB 是否可用并从那里开始播放。

无法让它工作。但是使用 udisks-glue 效果很好。我相信我在某个地方读过 udisks-glue 已被弃用。可能是这样,但效果很好!

我认为在这里描述这个不同的选项超出了范围(但是,如果有人想知道,我很乐意解释)。