我制作了一个简单的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所述,效果相同。
我做错了吗?
感谢您的回答。
答案 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
延迟或轮询应该绰绰有余。