我制定了一个简单的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一样,效果也是一样。
我做错什么了吗?
谢谢你的回答。
发布于 2018-03-19 19:27:27
由udev的RUN=指令启动的进程应该是短时间运行的。我建议使用系统调度程序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可用性/就绪的轮询。
https://stackoverflow.com/questions/49349712
复制相似问题