¿Ubuntu es compatible con "@reboot" en crontab?

23

¿Ubuntu es compatible @rebootcon crontab?

Encuentro documentación que sugiere que es compatible, pero Web Chatter afirma que no lo es.

No puedo hacer que la @rebootsección funcione. La sección "después de la medianoche" funciona bien.

Aquí está el ejemplo de prueba de mi /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 de shell btest.sh

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

permisos

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

usuario186171
fuente
¿Has pensado en hacer el script btest.sh, autostart. askubuntu.com/a/9388/2973
wojox
Hay una gran respuesta en Unix y Linux ' [¿@reboot de crontab solo funciona para root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez
Tengo en mi crontab personal la regla @reboot que funciona bien, se ve así:@reboot sh /home/me/run-stuff.sh
taneli
En caso de que nadie lo haya entendido: está mezclando crontabs: / etc / crontab es un crontab de usuario y requiere un usuario. crontab -e es el crontab personal y utiliza el usuario que está activo en el momento de la edición, por lo que no requiere un nombre de usuario. Ambos aceptan @reboot.
Rinzwind

Respuestas:

21

@reboot es compatible con Ubuntu. La razón por la cual tu entrada

@reboot /var/kiosk/btest.sh

no funciona en / etc / crontab es porque le falta el campo de usuario. La sintaxis correcta sería

@reboot root /var/kiosk/btest.sh
Teemu Toivola
fuente
2
Al menos en 14.04 este no es el caso, y está mal. Un "crontab man 5" tampoco lo menciona. Tal vez depende de la versión, pero lo dudo.
vorburger
1
@vorburger si quiere decir @rebootque no es compatible, entonces aquí hay un enlace a wiki que dice que sí. Por cierto, en mi 14.04, man 5 crontabhabla sobre@reboot
Fr0zenFyr
44
En mi Ubuntu 14.04, para que algún usuario someuserejecute automáticamente un comando en el (re) arranque, tuve que agregar al crontab de ese usuario una entrada sin especificar el nombre de usuario:@reboot /var/kiosk/btest.sh
Abdull
1
Además de la discusión, estoy usando ubuntu 16.4.05. Cuando se usa un crontab de usuarios, el comando @reboot funciona sin especificar el usuario para ejecutarlo, y no cuando se especifica el usuario.
Keith Reynolds el
1

Ubuntu 16.04.5 LTS: como root:

crontab -e

Agregue las siguientes líneas:

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 >> enviará stdout a /path_to_log.log para que pueda solucionar este problema

MKZ
fuente
0

Funciona en 18.04 como trabajo definido en cron.d.
Ingresé esto en el archivo de trabajo:

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

El r
fuente
1
agregar root no funcionó para mí. ¿Usaste crontab -e como root?
MKZ
Lo guardé en el archivo start_at_reboot en el directorio /etc/cron.d,
TheR