Saya perlu menyiapkan tugas cron yang menjalankan file executable yang dikompilasi menggunakan gcc sekali setiap jam.
Saya masuk sebagai root dan mengetik crontab -e
Kemudian saya memasukkan yang berikut ini dan menyimpan file.
0 * * * * /path_to_executable
Namun, tugas cron tidak berfungsi.
Saya melihat bahwa ketika saya mengetik /...path_to_executable
saya mendapatkan kesalahan segmentasi. Saya hanya dapat mengeksekusi file yang dapat dieksekusi dari folder tempatnya berada. Adakah cara untuk mengatasi masalah ini?
Jawaban:
0 * * * * cd folder_containing_exe && ./exe_name
harus berfungsi kecuali ada hal lain yang perlu diatur agar program dapat dijalankan.
sumber
Solusi untuk menyelesaikannya adalah dengan mencari tahu mengapa Anda mendapatkan kesalahan segmentasi, dan memperbaikinya.
sumber
Anda juga dapat menggunakan
@hourly
instan0 * * * *
sumber
@hourly
adalah sinonim yang tepat dari0 * * * *
, tidak ada perbedaan.Apakah maksud Anda eksekusi gagal dijalankan, jika dipanggil dari direktori lain? Ini lebih merupakan bug pada file yang dapat dieksekusi. Salah satu alasan potensial bisa jadi eksekusi membutuhkan beberapa libraires bersama dari folder yang diinstal. Anda dapat memeriksa variabel lingkungan
LD_LIBRARY_PATH
sumber
Jika Anda menggunakan Ubuntu, Anda dapat menempatkan sebuah shell script di salah satu folder tersebut:
/etc/cron.daily
,/etc/cron.hourly
,/etc/cron.monthly
atau/etc/cron.weekly
.Untuk detail lebih lanjut, lihat posting ini: /ubuntu/2368/how-do-i-set-up-a-cron-job
sumber
Karena saya tidak dapat menjalankan
C
executable seperti itu, saya menulis yang sederhanashell script
yang melakukan hal berikutDalam daftar cron jobs, saya memanggil skrip shell.
sumber
menggunakan
untuk melihat keluaran dari perintah Anda juga kesalahan dapat diarahkan
juga bisa Anda gunakan
crontab -l
untuk memeriksa apakah hasil edit Anda telah disimpan.
sumber