Ubuntu 在 crontab 中支持“@reboot”吗?

use*_*171 27 cron

Ubuntu@reboot在 crontab 中支持吗?

我发现文档表明它受支持,但网络聊天断言它不是。

我无法使该@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
Run Code Online (Sandbox Code Playgroud)

外壳脚本 btest.sh

#!/bin/bash
date > /var/kiosk/STARTFLAG.txt
echo we booted >> /var/kiosk/STARTFLAG.txt
date
echo we booted
Run Code Online (Sandbox Code Playgroud)

权限

$ 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 .
Run Code Online (Sandbox Code Playgroud)

小智 25

Ubuntu 支持@reboot。您进入的原因

@reboot /var/kiosk/btest.sh
Run Code Online (Sandbox Code Playgroud)

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

@reboot root /var/kiosk/btest.sh
Run Code Online (Sandbox Code Playgroud)

  • 在我的 Ubuntu 14.04 上,为了让一些用户 `someuser` 在(重新)启动时自动运行命令,我必须向 **该用户的** crontab 添加一个条目 ** 不**指定用户名:`@reboot /var /kiosk/btest.sh` (4认同)
  • 至少在 14.04 中不是这样,而且是错误的。“man 5 crontab”也没有提到它。也许这取决于版本,但我对此表示怀疑。 (2认同)