我一直在寻找一种优雅的方法来自动化一个非常繁琐的过程。
这是我想要实现的工作流程:
- 插入U盘(单分区)
- sdX1 通过一些安装选项自动安装到 /mnt/data
- 一些 systemd 服务已启动(它们与挂载点中的文件交互)。
- 我手动发出命令来卸载驱动器。
- 服务自动终止。
我一直在尝试传输,所以我有以下服务:
[Unit]
Description=Transmission BitTorrent Daemon
After=network.target
After=mnt-data.mount
[Service]
User=transmission
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecReload=/bin/kill -s HUP $MAINPID
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
WantedBy=mnt-data.mount
这是我的 udev 规则文件:
SUBSYSTEMS=="usb", ATTRS{idProduct}=="1153", ACTION=="add", ENV{SYSTEMD_WANTS}=="transmission.service"
我以为在安装驱动器时设法启动服务,但我无法让它发挥作用。
我感谢您的帮助。
编辑:这似乎比我想象的要困难一些,因为 udisks 似乎不与 systemd 对话。当我通过systemctl stop mnt-data.mount
服务卸载驱动器时,该服务会停止,但如果我以任何其他方式卸载,该服务将继续运行。