Ubuntu supporta "@reboot" in crontab?


23

Ubuntu supporta @rebootcrontab?

Trovo la documentazione che suggerisce che è supportata, ma le chat Web affermano che non lo è.

Non riesco a far funzionare la @rebootsezione. La sezione "dopo mezzanotte" funziona bene.

Ecco l'esempio di test dal mio /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 di shell btest.sh

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

permessi

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


Hai mai pensato di creare lo script btest.sh, avvio automatico. askubuntu.com/a/9388/2973
Wojox il

C'è un'ottima risposta su Unix & Linux ' [@reboot di crontab funziona solo per root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez

Ho nella mia regola crontab @reboot personale che funziona bene, assomiglia a questo:@reboot sh /home/me/run-stuff.sh
taneli

Nel caso nessuno lo capisse: sta mescolando crontab: / etc / crontab è un crontab utente e richiede un utente. crontab -e è il crontab personale e utilizza l'utente che è attivo al momento della modifica, quindi non richiede un nome utente. Entrambi accettano @reboot.
Rinzwind,

Risposte:


21

@reboot è supportato in Ubuntu. Il motivo per cui la tua voce

@reboot /var/kiosk/btest.sh

non funziona in / etc / crontab perché manca il campo utente. La sintassi corretta sarebbe

@reboot root /var/kiosk/btest.sh

2
Almeno nel 14.04 questo non è il caso, e sbagliato. Neanche un "man 5 crontab" ne parla. Forse dipende dalla versione, ma ne dubito.
Vorburger,

1
@vorburger se vuoi dire che @rebootnon è supportato, ecco un link al wiki che dice che lo fa. A proposito, sul mio 14.04, man 5 crontabracconta@reboot
Fr0zenFyr

4
Sul mio Ubuntu 14.04, per fare in modo che un utente someuseresegua automaticamente un comando al (riavvio), ho dovuto aggiungere al crontab dell'utente una voce senza specificare il nome utente:@reboot /var/kiosk/btest.sh
Abdull

1
Aggiungendo alla discussione, sto usando Ubuntu 16.4.05. Quando si utilizza un crontab degli utenti, il comando @reboot funziona senza specificare l'utente come eseguibile e non quando l'utente è specificato.
Keith Reynolds,

1

Ubuntu 16.04.5 LTS: come root:

crontab -e

Aggiungi le seguenti righe:

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 >> genererà stdout su /path_to_log.log in modo da poter risolvere questo problema


0

Funziona su 18.04 come lavoro definito in cron.d.
Ho inserito questo nel file di lavoro:

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


1
l'aggiunta di root non ha funzionato per me. Hai usato crontab -e come root?
MKZ,

L'ho salvato nel file start_at_reboot nella directory /etc/cron.d,
TheR
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.