是否可以mount
在系统重启后运行一定时间的系统命令?
我的问题是,我/etc/fstab
在 Linux(Ubuntu)虚拟机中有一个用于挂载主机磁盘的条目。由于加载内核模块时出现一些时间问题,直接挂载不起作用。因此,我使用了一个noauto
选项,并在中fstab
添加了一行。/etc/rc.local
mount /some_disk
这在 Ubuntu (12.04 和 14.04) 上曾经有效,但现在我切换到了 Lubuntu。上面的方法不再有效。我猜可能是因为 Lubuntu 重启速度更快,而且rc.local
执行得早。顺便说一句,我验证了其他命令rc.local
执行正常。并且在系统启动后执行mount /some_disk
时有效。sudo
所以我想知道如何mount /some_disk
在脚本中推迟rc.local
,比如说重启后 1 分钟?
注意:我可以做
sudo mount /some_disk
重启后几秒内成功(GUI 已启动)。
答案1
是的,这是可能的。只需创建一个初始化脚本并将其放入即可/etc/init.d/
。
然后通过以下命令使用不同的运行级别注册脚本:
update-rc.d <scriptname> defaults 99 01
99 表示它是在启动过程的最后被调用。
复杂的守护进程脚本看起来像/etc/init.d/skeleton
。
但是,由于您的脚本根本不应该是一个守护进程,因此以下脚本应该可以工作。
#!/bin/sh
case "$1" in
start)
sleep 60
# your code
;;
esac
quit 0
答案2
@D Schlachter 的回答是个好主意,但缺乏以 root 身份执行命令的要点。不过,您可以使用 /etc/crontab 中的系统范围 crontab 或 root 的 crontab,
sudo crontab -e
请注意这些文件之间的语法差异,因为系统范围的 crontab 需要为将要执行命令的用户提供一个额外的列。
@reboot root sleep 60; mount /some_disk