使用 crontab @reboot 启动屏幕程序

使用 crontab @reboot 启动屏幕程序

我尝试使用 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 调用的脚本或程序中需要绝对路径;它们始终以 开头。./

相关内容