Udev:分离脚本等待挂载

时间:2018-03-18 15:33:11

标签: sleep udev

我制作了一个简单的udev规则,可以有效地启动我的脚本:

KERNEL=="sdc", ACTION=="add", SUBSYSTEMS=="usb", ATTRS{manufacturer}=="Bookeen", ATTRS{product}=="Cybook", RUN+="/home/nap/Scripts/Wallabag.sh"

udev规则正常运行,并启动以下脚本:

#!/bin/bash

sleep 5
(
exec </dev/null >/home/nap/usb.log 2>&1
set -x

mkdir /media/nap/Cybook/Test
) &

它应该分离并让时间驱动自动安装,但是在脚本退出后仍然会进行安装。

我已经尝试过“&amp; disown”,效果相同。

我也尝试在另一个脚本中运行我的脚本,如同here所述,效果相同。

我做错了吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

udev RUN=指令启动的流程应短期运行。我想通过使用系统调度程序udev命令建议一种更简单的方法at解耦长时间运行的进程:

KERNEL=="sdc", ACTION=="add", ATTRS{product}=="Cybook", RUN+="/usr/bin/at -M -f /home/nap/Scripts/Wallabag.sh now"

确保/home/nap/Scripts/Wallabag.sh脚本/bin/sh兼容 - 这是at使用的shell。对于sleep可用性/准备就绪实施简单/media/nap/Cybook延迟或轮询应该绰绰有余。