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


¿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

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


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.