Unterstützt Ubuntu "@reboot" in Crontab?

23

Unterstützt Ubuntu @rebootCrontab?

Ich finde Dokumentationen, die darauf hindeuten, dass es unterstützt wird, aber Web-Chatter behauptet, dass dies nicht der Fall ist.

Ich kann die @rebootSektion nicht zum Laufen bringen. Der Abschnitt "Nach Mitternacht" funktioniert einwandfrei.

Hier ist das Testbeispiel von meinem /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-Skript btest.sh

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

Berechtigungen

$ 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 .

user186171
quelle
Haben Sie darüber nachgedacht, das Skript btest.sh automatisch zu starten? askubuntu.com/a/9388/2973
wojox
Es gibt eine großartige Antwort auf Unix & Linux ' [crontabs @reboot funktioniert nur für root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez
Ich habe in meinem persönlichen Crontab @ Reboot-Regel, die in Ordnung funktioniert, sieht so aus:@reboot sh /home/me/run-stuff.sh
Taneli
Falls es niemand verstanden hat: Er mischt Crontabs: / etc / crontab ist ein Benutzer von Crontab und benötigt einen Benutzer. crontab -e ist die persönliche crontab und verwendet den Benutzer, der zum Zeitpunkt der Bearbeitung aktiv ist, sodass kein Benutzername erforderlich ist. Beide akzeptieren @reboot.
Rinzwind

Antworten:

21

@reboot wird in Ubuntu unterstützt. Der Grund warum Ihr Eintrag

@reboot /var/kiosk/btest.sh

funktioniert in / etc / crontab nicht, weil das Benutzerfeld fehlt. Die richtige Syntax wäre

@reboot root /var/kiosk/btest.sh
Teemu Toivola
quelle
2
Zumindest in 14.04 ist dies nicht der Fall und falsch. Ein "Man 5 Crontab" erwähnt es auch nicht. Vielleicht hängt es von der Version ab, aber ich bezweifle es.
Vorburger
1
@vorburger wenn du meinst @rebootwird nicht unterstützt, dann ist hier ein link zum wiki der sagt das es geht. Übrigens, auf meinem 14.04 man 5 crontaberzählt@reboot
Fr0zenFyr
4
Auf meinem Ubuntu 14.04 musste someuserich dem crontab eines Benutzers einen Eintrag ohne Angabe des Benutzernamens hinzufügen, damit ein Benutzer beim (Neustart) automatisch einen Befehl @reboot /var/kiosk/btest.sh
ausführt
1
Zusätzlich zur Diskussion verwende ich Ubuntu 16.4.05. Wenn Sie eine Benutzer-Crontab verwenden, funktioniert der Befehl @reboot ohne Angabe des Benutzers, unter dem er ausgeführt werden soll, und nicht, wenn der Benutzer angegeben ist.
Keith Reynolds
1

Ubuntu 16.04.5 LTS: Als root:

crontab -e

Fügen Sie die folgenden Zeilen hinzu:

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 >> gibt stdout in /path_to_log.log aus, damit Sie dies beheben können

MKZ
quelle
0

Es funktioniert am 18.04 als Job definiert in cron.d.
Ich habe dies in die Jobdatei eingetragen:

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

TheR
quelle
1
Das Hinzufügen von root hat bei mir nicht funktioniert. Hast du crontab -e als root benutzt?
MKZ
Ich habe es in der Datei start_at_reboot im Verzeichnis /etc/cron.d gespeichert.
TheR