Ubuntu prend-il en charge «@reboot» dans crontab?

23

Ubuntu prend-il @rebooten charge dans crontab?

Je trouve de la documentation suggérant qu'il est pris en charge, mais le bavardage Web affirme que ce n'est pas le cas.

Je ne peux pas faire fonctionner la @rebootsection. La section "après minuit" fonctionne très bien.

Voici l'exemple de test de mon /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

script shell btest.sh

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

autorisations

$ 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
la source
Avez-vous pensé à créer le script btest.sh, autostart. askubuntu.com/a/9388/2973
wojox
Il y a une excellente réponse sur Unix et Linux ' [@reboot de crontab ne fonctionne que pour root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez
J'ai dans ma règle personnelle crontab @reboot qui fonctionne bien, ressemble à ceci:@reboot sh /home/me/run-stuff.sh
taneli
Au cas où personne ne l'aurait: il mélange des crontabs: / etc / crontab est un utilisateur crontab et nécessite un utilisateur. crontab -e est la crontab personnelle et utilise l'utilisateur qui est actif au moment de l'édition, donc ne nécessite pas de nom d'utilisateur. Les deux acceptent @reboot.
Rinzwind

Réponses:

21

@reboot est pris en charge dans Ubuntu. La raison pour laquelle votre entrée

@reboot /var/kiosk/btest.sh

ne fonctionne pas dans / etc / crontab car il manque le champ utilisateur. La syntaxe correcte serait

@reboot root /var/kiosk/btest.sh
Teemu Toivola
la source
2
Au moins en 14.04 ce n'est pas le cas, et c'est faux. Un "homme 5 crontab" ne le mentionne pas non plus. Cela dépend peut-être de la version, mais j'en doute.
vorburger
1
@vorburger si vous voulez dire qu'il @rebootn'est pas pris en charge, alors voici un lien vers le wiki qui le dit. BTW, sur mon 14.04, man 5 crontabparle de@reboot
Fr0zenFyr
4
Sur mon Ubuntu 14.04, pour qu'un utilisateur someuserexécute automatiquement une commande au (re) démarrage, j'ai dû ajouter à la crontab de cet utilisateur une entrée sans spécifier le nom d'utilisateur:@reboot /var/kiosk/btest.sh
Abdull
1
Pour ajouter à la discussion, j'utilise ubuntu 16.4.05. Lorsque vous utilisez une crontab d'utilisateurs, la commande @reboot fonctionne sans spécifier l'utilisateur à exécuter en tant que, et pas lorsque l'utilisateur est spécifié.
Keith Reynolds
1

Ubuntu 16.04.5 LTS: en tant que root:

crontab -e

Ajoutez les lignes suivantes:

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 >> affichera stdout dans /path_to_log.log afin que vous puissiez résoudre ce problème

MKZ
la source
0

Il fonctionne le 18.04 comme le travail défini dans cron.d.
Je l'ai entré dans le dossier de travail:

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

TheR
la source
1
l'ajout de root n'a pas fonctionné pour moi. Avez-vous utilisé crontab -e en tant que root?
MKZ
Je l'ai enregistré dans le fichier start_at_reboot dans le répertoire /etc/cron.d,
TheR