Ubuntu 是否支持 crontab 中的“@reboot”?

Ubuntu 是否支持 crontab 中的“@reboot”?

Ubuntu 是否支持@rebootcrontab?

我发现文档表明它受支持,但网络聊天声称它不受支持。

我无法让该@reboot部分工作。“午夜之后”部分工作正常。

以下是我的测试示例/etc/crontab

$ cat /etc/crontab
# /etc/crontab: system-wide crontab

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
##

# in the beginning - 
@reboot /var/kiosk/btest.sh

# after midnight
30 0     * * *   root    /etc/cron.daily/kiosk/kioskReboot.sh

# end of crontab

shell 脚本btest.sh

#!/bin/bash
date > /var/kiosk/STARTFLAG.txt
echo we booted >> /var/kiosk/STARTFLAG.txt
date
echo we booted

权限

$ ls -l btest.sh
-rwxrwxrwx 1 root root 147 Aug 21 15:19 btest.sh
$ ls -ld
drwxrwxrwx 14 laptopsanytime root 4096 Aug 21 16:30 .

答案1

@reboot 在 Ubuntu 中是受支持的。您输入的原因是

@reboot /var/kiosk/btest.sh

在 /etc/crontab 中不起作用是因为它缺少用户字段。正确的语法应该是

@reboot root /var/kiosk/btest.sh

答案2

Ubuntu 16.04.5 LTS:以 root 身份:

crontab -e

添加以下行:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@reboot /path_to_script.sh 2>&1 >> /path_to_log.log

2>&1 >> 将输出标准输出到 /path_to_log.log,以便您可以解决此问题

答案3

它在 18.04 上运行,如中定义的作业cron.d
我在作业文件中输入了以下内容:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@reboot root /path/to/script.sh

相关内容