Ini bisa menjadi topik yang membingungkan karena ada implementasi cron yang berbeda. Juga ada beberapa bug yang merusak fitur ini, dan ada juga beberapa kasus penggunaan di mana itu tidak akan berfungsi, khususnya jika Anda melakukan shutdown / boot vs reboot.
Bug
datapoint # 1
Salah satu bug di Debian dibahas di sini, berjudul: cron: @reboot jobs tidak dijalankan . Ini sepertinya telah masuk ke Ubuntu juga, yang saya tidak dapat konfirmasi secara langsung.
datapoint # 2
Bukti bug di Ubuntu tampaknya akan dikonfirmasi di sini dalam SO T&J ini berjudul: @reboot cronjob tidak dijalankan .
kutipan
komentar # 1: .... 3) versi crond Anda mungkin tidak mendukung @reboot apakah Anda menggunakan crx vix? ... tampilkan hasil dari crontab -l -u pengguna
komentar # 2: ... Mungkin ide yang baik untuk mengaturnya sebagai skrip init alih-alih mengandalkan versi tertentu dari @reboot cron.
comment # 3: ... @MarkRoberts menghapus reboot dan memodifikasi 1 * * * *, menjadi * / 1 * * * *, masalah terpecahkan! Di mana saya mengirim Mark Poin repts? Terima kasih!
Jawaban yang diterima dalam Tanya Jawab itu juga memiliki komentar ini:
Menurut saya Lubuntu tidak mendukung sintaks @Reboot Cron.
Bukti tambahan
datapoint # 3
Sebagai bukti tambahan ada utas ini bahwa seseorang mencoba hal yang sama dan merasa frustrasi karena tidak berhasil. Judulnya: Thread: Cron - @reboot jobs tidak berfungsi .
kutipan
Re: Cron - pekerjaan @reboot tidak berfungsi
Kutip Awalnya Diposting oleh ceallred Lihat Posting Ini membunuhku ... Mencoba skrip wrapper. Menjalankan secara manual menghasilkan file log ... me-reboot dan pekerjaan tidak berjalan atau membuat file log.
Syslog menunjukkan bahwa CRON menjalankan pekerjaan ... tetapi sekali lagi, tidak ada output dan proses tidak berjalan. 15 Jul 20:07:45 RavenWing cron [1026]: (CRON) INFO (Menjalankan pekerjaan @ reboot) 15 Jul 20:07:45 RavenWing CRON [1053]: (ceallred) CMD (/ home / ceallred / Scripts / run_spideroak. sh> /home/ceallred/Scripts/SpiderOak.log 2> & 1 &)
Sepertinya cron tidak menyukai perintah @reboot .... Ada ide lain?
Oke ... Sebagian terpecahkan. Saya akan menandai yang ini diselesaikan dan memulai utas baru dengan masalah baru .....
Saya pikir jawabannya adalah direktori home terenkripsi saya tidak dipasang ketika CRON mencoba menjalankan skrip (disimpan di / home / nama pengguna / skrip). Pindah ke / usr / skrip dan pekerjaan berjalan seperti yang diharapkan.
Jadi sekarang tampaknya menjadi masalah spideroak. Proses dimulai, tetapi pada saat proses booting selesai, proses itu hilang. Saya menduga crash karena suatu alasan .... Utas baru untuk bertanya tentang itu.
Terima kasih atas semua bantuannya!
Setelah pengguna di atas menemukan masalahnya, ia bisa mulai @reboot
mengerjakan entri crontab pengguna.
Saya tidak sepenuhnya yakin versi cron apa yang digunakan di Ubuntu, tetapi ini sepertinya mengindikasikan bahwa pengguna juga dapat menggunakannya @reboot
, atau bahwa bug diperbaiki pada beberapa titik di versi cron berikutnya.
datapoint # 4
Saya menguji pada CentOS 6 berikut ini dan itu berhasil.
Contoh
$ crontab -l
@reboot echo "hi" > /home/sam/reboot.txt 2>&1
Saya kemudian reboot sistem.
$ sudo reboot
Setelah reboot.
$ cat reboot.txt
hi
Awasi
- Fitur ini tampaknya didukung untuk entri sistem dan crontab pengguna.
- Anda harus memastikan bahwa itu didukung / bekerja di distro khusus Anda dan / atau versi paket cron.
Untuk lebih lanjut tentang bagaimana mekanisme yang sebenarnya bekerja untuk @reboot
saya menemukan posting blog ini yang membahas jeroan. Judulnya : @reboot - menjelaskan sihir cron sederhana .
Debugging crond
Anda dapat mengubah verbositas crond
dengan menambahkan yang berikut ini ke file konfigurasi ini di distro berbasis RHEL / CentOS / Fedora.
$ more crond
# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-L 2"
Level yang valid adalah 0, 1, atau 2. Untuk mengembalikan file ini kembali ke level logging standarnya, cukup hapus "-L 2"
ketika Anda selesai men-debug situasi.