Maxim Asked: 2018-07-20 07:29:12 +0800 CST2018-07-20 07:29:12 +0800 CST 2018-07-20 07:29:12 +0800 CST fstab 挂载时间 772 我正在编写一个应该在启动时执行的脚本,但问题是该脚本需要共享驱动器上的一些文件,这些文件是通过 fstab 自动挂载的,并且在执行时驱动器没有挂载然而。 我尝试过使用 cron @reboot 和 init.d 路由,但它们都执行得太早了。我也考虑过添加mount -a到脚本中,但我宁愿避免这样sudo做。现在我只是添加了一个延迟让它工作,但这感觉有点hacky。 有没有办法确保在处理 fstab 后启动脚本运行?或者不使用强制处理坐骑sudo? ubuntu cron 2 个回答 Voted Best Answer redseven 2018-07-20T07:43:25+08:002018-07-20T07:43:25+08:00 为此,您必须将脚本作为systemd单元运行(假设您有 systemd),您可以在其中定义依赖项... 如果您想坚持使用cron @reboot(这听起来很简单),您必须使您的脚本更智能(或者在 fs 挂载后启动 cron ......我不建议进行哪些更改)。您可以检查是否安装了所需的文件系统(在 bash 中),而不是简单的延迟: while ! mount | awk '{print $3}' | grep -qx /the/mountpoint; do sleep 1 done 或者您可以检查文件是否存在您需要的内容: while ! [ -f /that/file ] ; do sleep 1 done YoMismo 2018-07-20T07:39:08+08:002018-07-20T07:39:08+08:00 我将假设您使用的是相对较新的 Linux 发行版,因此您可能需要检查systemd手册,因为SysV在默认发行版安装中不再使用,这很可能是您的问题。systemd允许启动依赖项,您可以在其中指定哪些脚本在其他脚本之前运行。 检查下一个链接
为此,您必须将脚本作为systemd单元运行(假设您有 systemd),您可以在其中定义依赖项...
如果您想坚持使用cron @reboot(这听起来很简单),您必须使您的脚本更智能(或者在 fs 挂载后启动 cron ......我不建议进行哪些更改)。您可以检查是否安装了所需的文件系统(在 bash 中),而不是简单的延迟:
或者您可以检查文件是否存在您需要的内容:
我将假设您使用的是相对较新的 Linux 发行版,因此您可能需要检查
systemd
手册,因为SysV
在默认发行版安装中不再使用,这很可能是您的问题。systemd
允许启动依赖项,您可以在其中指定哪些脚本在其他脚本之前运行。检查下一个链接