我尝试使用 crontab 在重启时启动 start.sh。但重启后什么也没发生,日志中也没有错误。有人知道我做错了什么吗?为了测试,我给了 start.sh 和 Mod.jar 777 权限,但重启后仍然没有反应。如果我以 otto 身份手动登录启动 start.sh,一切正常,Mod.jar 会在 60 秒后启动。
crontab -e 的内容(作为用户 Otto)
@reboot ./home/otto/server/start.sh
start.sh 的内容
sleep 60
/usr/bin/screen -d -m -S mod java -mx100M -jar /home/otto/server/Mod.jar
Cron日志没有错误。
May 1 12:12:02 srv1 /USR/SBIN/CRON[1881]: (otto) CMD (./home/otto/server/start.sh)
答案1
欢迎来到 AU!
这似乎是用户的 cron 环境无法正确识别显示(或)的情况stdout
(所有 GUI 应用程序通常都是这种情况)。您会在 AU 和 StackExchange 上找到大量有关该主题的问答。
解决方案:
在用户otto
的 crontab 中,修改您的作业条目,使其内容为:
@reboot DISPLAY=:0 /home/otto/server/start.sh
注意:我隐藏了完全合格的脚本调用前面的
虚假内容。cron 调用的脚本或程序中需要绝对路径;它们始终以 开头。.
/