【问题标题】:Udev : detach script to wait for mountingUdev:分离脚本以等待挂载
【发布时间】:2018-03-18 15:33:11
【问题描述】:

我制定了一个简单的 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
) &

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

我已经尝试过使用“& disown”达到同样的效果。

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

我是不是做错了什么?

感谢您的回答。

【问题讨论】:

    标签: sleep udev


    【解决方案1】:

    udevRUN= 指令启动的进程应该是短期运行的。我想通过使用系统调度程序at 命令提出一种更简单的方法,将udev 的长期运行进程解耦

    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 可用性/就绪性应该绰绰有余。

    【讨论】:

    • 完美!!谢谢你的回答:)
    • 在 StackExchange 网站上说 谢谢 的正确方式是点赞并接受有用的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多