man 5 crontab非常清楚如何使用crontab在引导时运行脚本:
These special time specification "nicknames" are supported, which replace the 5 initial time and date
fields, and are prefixed by the `@` character:
@reboot : Run once after reboot.因此,我高兴地在crontab中添加了一行(在我的用户帐户下,而不是根):
@reboot /home/me/myscript.sh但出于某种原因,myscript.sh不会在机器重新启动时运行。(如果我从命令行调用它,它就会运行良好,所以它不是权限问题)
我遗漏了什么?
更新以回答@Anthon的问题:
/home是一个挂载分区。看来这就是问题所在。我该怎么解决这个问题?myscript.sh只将文本消息回显给/home/me中的文件。发布于 2016-03-23 11:24:59
我发现在我的Ubuntu机器上,我还不能在@reboot时访问dns服务。这使我无法安装远程卷。这个老生常谈但又简单的解决方案奏效了:
@reboot sleep 60 && /home/me/bin/mount.sh 2>&1 >> /home/me/reboot.log
(根cron中;最后部分仅用于调试)
发布于 2017-02-08 18:16:23
我也有mac,我的脚本没有运行的问题也是一样的。但当我修改我的剧本时
@reboot cd /home/me/ && sh myscript.sh对我来说挺好的。通过运行命令,确保shell文件是可执行的
chmod +x myscript.sh发布于 2017-04-06 16:44:44
我不知道您是否已经解决了这一问题,或者上述任何一种解决方案都是您所需要的,但另一种可能是:
如果您对/home目录进行了加密,则在登录之前它可能不可用,即在重新启动时不可用。
在这个场景中,您可以将脚本移动到另一个位置,如/srv或/opt或/usr/local/bin/等等。
https://unix.stackexchange.com/questions/109804
复制相似问题