crontab无法开机自启脚本

统信uos上,我配置了个crontab,让start.sh脚本开机后30s重启,当开机后30s的时候我查看这个脚本运行后产生的进程是有的,继续查进程就没了,crontab配置文件如下

@reboot sleep 60s; sh /home/admin/Desktop/start.sh

先检查一下 crontab 的日志,确认执行上没有问题。

> grep CRON /var/log/syslog

若没有问题,建议修改一下 cron 任务,把命令的 log 打下来:

@reboot sleep 60s; sh /home/admin/Desktop/start.sh > /tmp/tricky.log 2>&1

然后再详细查看一下问题。而且问题描述中的分号好像是中文全角分号,最好检查一下这些细微错误。

这个问题是你的脚本命令造成的,没有声明为后台进程,导致启动后关闭窗口的情况下,程序又关闭了,在你的脚本启动那一行的命令最后加上 &,表示声明为后台进程 比如 java -jar xxx.jar xxx &

Crontab 可以使用 @reboot 来执行主机启动之后的命令。首先在命令行输入:$ crontab -e
然后添加以下内容:@reboot /root/script/restart.sh
完成后,这个脚本就可以在重启的时候自动执行了。其它的一些进阶玩法:在启动完成后的指定时间内运行脚本# 在启动 5 分钟后运行指定脚本
@reboot sleep 300 && /home/wwwjobs/clean-static-cache.sh

img