Apakah Ubuntu mendukung "@reboot" di crontab?

23

Apakah Ubuntu mendukung @rebootcrontab?

Saya menemukan dokumentasi yang menyarankan itu didukung, tetapi obrolan web menyatakan itu tidak didukung.

Saya tidak dapat membuat @rebootbagian ini berfungsi. Bagian "after midnight" berfungsi dengan baik.

Ini contoh tes dari saya /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

skrip shell btest.sh

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

izin

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

pengguna186171
sumber
Pernahkah Anda berpikir untuk membuat skrip btest.sh, autostart. askubuntu.com/a/9388/2973
wojox
Ada jawaban yang bagus di Unix & Linux ' [@reboot crontab hanya berfungsi untuk root?] [1] [1]: unix.stackexchange.com/q/109804/17362
Édouard Lopez
Saya miliki dalam aturan crontab @reboot pribadi saya yang berfungsi ok, terlihat seperti ini:@reboot sh /home/me/run-stuff.sh
taneli
Jika tidak ada yang mendapatkannya: ia mencampurkan crontab: / etc / crontab adalah crontab pengguna dan membutuhkan pengguna. crontab -e adalah crontab pribadi dan menggunakan pengguna yang aktif pada saat mengedit sehingga tidak memerlukan nama pengguna. Keduanya menerima @reboot.
Rinzwind

Jawaban:

21

@reboot didukung di Ubuntu. Alasan mengapa entri Anda

@reboot /var/kiosk/btest.sh

tidak berfungsi di / etc / crontab adalah karena tidak ada bidang pengguna. Sintaks yang benar adalah

@reboot root /var/kiosk/btest.sh
Teemu Toivola
sumber
2
Setidaknya dalam 14,04 ini tidak terjadi, dan salah. Seorang "pria 5 crontab" juga tidak menyebutkannya. Mungkin itu tergantung versi, tapi saya ragu.
vorburger
1
@vorburger jika maksud Anda @reboottidak didukung, maka di sini ada tautan ke wiki yang mengatakannya. BTW, pada 14,04 saya, man 5 crontabtidak bercerita tentang@reboot
Fr0zenFyr
4
Di Ubuntu 14.04 saya, agar beberapa pengguna someusersecara otomatis menjalankan perintah pada (re) boot, saya harus menambahkan entri crontab pengguna tanpa menentukan nama pengguna:@reboot /var/kiosk/btest.sh
Abdull
1
Menambah diskusi, saya menggunakan ubuntu 16.4.05. Saat menggunakan crontab pengguna, perintah @reboot berfungsi tanpa menentukan pengguna yang akan dijalankan, dan tidak ketika pengguna ditentukan.
Keith Reynolds
1

Ubuntu 16.04.5 LTS: Sebagai root:

crontab -e

Tambahkan baris berikut:

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 >> akan menampilkan stdout ke /path_to_log.log sehingga Anda dapat memecahkan masalah ini

MKZ
sumber
0

Ini bekerja pada 18,04 sebagai pekerjaan yang ditentukan dalam cron.d.
Saya memasukkan ini dalam file pekerjaan:

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

TheR
sumber
1
menambahkan root tidak berhasil untuk saya. Apakah Anda menggunakan crontab -e sebagai root?
MKZ
Saya menyimpannya di file start_at_reboot di direktori /etc/cron.d,
TheR