因此,准确地说,我试图延迟树莓派 2 上“deluge-daemon”的启动。不知何故,USB (NTFS) 仅在 X 服务器启动后自动挂载(我在 Raspbian 中使用默认的自动挂载)(虽然我什至不需要 X 服务器)并且 Deluge 似乎比 USB 安装更早启动,并且我遇到了权限问题,因为 USB 尚未安装并且必须重新启动 Deluge 才能开始工作适当地...
所以我尝试降低优先级并仅在运行级别 5 上运行它:
sudo update-rc.d deluge-daemon start 20 5 . stop 80 0 1 6 .
这并没有什么帮助。我尝试编辑 deluge-daemon 启动脚本并添加
sleep 1m
在启动脚本的启动情况下。然后它就可以工作,并在 USB 已安装后安装,但问题是,现在每次我尝试启动 deluge-daemon 服务时,它都会变慢,所以每次我决定停止并启动该过程后都需要一分钟手动...
任何帮助,将不胜感激。必须有一种方法可以延迟启动而不影响一般启动脚本......
答案1
睡觉前可以检查一下USB是否挂载。例如:
mount | grep -q /path/to/USB/stick/mountpoint || sleep 1m
仅当未安装 USB 记忆棒时才会休眠 1 分钟。
答案2
当你说:
所以我尝试降低优先级并仅在运行级别 5 上运行它
我希望你没有降低起始编号...因为那样会相反!
数字越小,服务启动越早:rc
将依次运行 的内容/etc/rcS.d/
,然后运行 的内容/etc/rc?.d
(?
当前运行级别),文件夹的内容/etc/rc*
是服务 initscript 的符号链接,格式S??service_name
为启动脚本(其中rc
将使用“start”参数执行)或K??service_name
停止脚本(rc
将使用“stop”参数执行)。
在 和 中S??
,K??
是??
执行的位置,第一个是 00,最后一个是 99。当两个或多个脚本具有相同的编号时,它们将根据服务名称的字母顺序执行。
话虽如此,如果你跑
sudo uptate-rc.d deluge-daemon start 99 5 . stop 80 0 1 6 .
或者将rc
符号链接重命名/etc/rc5.d/S??deluge-daemon
为/etc/rc5.d/S99deluge-daemon
, deluxe-daemon 将是在运行级别 5 中启动的最后一个(或最后一个)服务。如果将符号链接重命名为 ,S99Zdeluge-daemon
则更有可能在启动时让它最后运行。
如果可能的话,您当然可以使用此过程尝试尽早启动此 deluge-daemon 所需的服务。