O Ubuntu suporta "@reboot" no crontab?

23

O Ubuntu suporta @rebootno crontab?

Encontro documentação sugerindo que ele é suportado, mas o web chatter afirma que não.

Não consigo fazer a @rebootseção funcionar. A seção "depois da meia-noite" funciona bem.

Aqui está o exemplo de teste do meu /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

permissões

$ 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
fonte
Você já pensou em criar o script btest.sh, autostart. askubuntu.com/a/9388/2973
wojox
Existe uma ótima resposta no Unix e Linux ' [o @reboot do crontab funciona apenas como root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez
Tenho em minha regra @reboot crontab pessoal que trabalha ok, esta aparência:@reboot sh /home/me/run-stuff.sh
Taneli
Caso ninguém entenda: ele está misturando crontabs: / etc / crontab é um usuário crontab e requer um usuário. crontab -e é o crontab pessoal e usa o usuário que está ativo no momento da edição, portanto não requer um nome de usuário. Ambos aceitam @reboot.
Rinzwind 03/04

Respostas:

21

O @reboot é suportado no Ubuntu. A razão pela qual sua entrada

@reboot /var/kiosk/btest.sh

não funciona em / etc / crontab é porque está faltando o campo do usuário. A sintaxe correta seria

@reboot root /var/kiosk/btest.sh
Teemu Toivola
fonte
2
Pelo menos em 14.04, esse não é o caso, e está errado. Um "homem 5 crontab" também não menciona. Talvez dependa da versão, mas duvido.
vorburger
1
@vorburger se você quer dizer que @rebootnão é suportado, então aqui está um link para o wiki que diz que sim. BTW, no meu 14.04, man 5 crontabconta sobre@reboot
Fr0zenFyr 15/07/16
4
No meu Ubuntu 14.04, para que algum usuário someuserexecute automaticamente um comando na (re) inicialização, tive que adicionar uma entrada ao crontab desse usuário sem especificar o nome de usuário:@reboot /var/kiosk/btest.sh
Abdull
1
Adicionando à discussão, estou usando o ubuntu 16.4.05. Ao usar um crontab de usuários, o comando @reboot funciona sem especificar o usuário para executar como e não quando o usuário é especificado.
Keith Reynolds
1

Ubuntu 16.04.5 LTS: como root:

crontab -e

Adicione as seguintes linhas:

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 >> produzirá stdout para /path_to_log.log para que você possa solucionar esse problema

MKZ
fonte
0

Funciona em 18.04 como trabalho definido em cron.d.
Eu digitei isso no arquivo de trabalho:

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

TheR
fonte
1
adicionar root não funcionou para mim. Você usou o crontab -e como root?
MKZ 03/04
Salvei-o no arquivo start_at_reboot no diretório
/etc/cron.d