我在用户的crontab中使用@reboot ~/www/example.com/bin/server
...但是当我重启服务器时,Web服务器(此脚本)没有出现。 (脚本在命令行中运行良好)。
我的猜测是/home/user
目录尚未安装...有没有人知道是否可以使用此crontab @reboot
方法让脚本在主目录中运行?
答案 0 :(得分:6)
如果您认为尚未安装/ home / user(或某些必需的系统尚未运行),则在crontab行中,您始终可以在执行以下命令之前等待:
@reboot sleep 60; /home/user/www/example.com/bin/server
答案 1 :(得分:0)
肯定应该归功于评论中给出的环境场景。尝试以下操作并通过重新启动检查一次
@reboot (date > /tmp/date-check.txt)
确保cron能够运行这些工作。
答案 2 :(得分:0)
我的问题是crontab没有完整的环境。我制作了指向源{my} {}的脚本。
.bashrc
@reboot /home/user/www/example.com/bin/server
确保./server
获得工作环境。
答案 3 :(得分:0)
在Ubuntu中,如果您使用的是主目录加密功能,那么crontab文件中的@reboot将无法正常工作,因为当系统启动并且cron运行其@reboot作业时,文件系统仍然是加密的。
您的选择是将文件放在未加密的位置(we
或其他什么?)或在您的主目录中禁用主目录加密。