Her saat bir çalıştırılabilir dosyayı çalıştırmak için bir cron işi nasıl kurulur?


95

Her saatte bir gcc kullanarak derlenen bir yürütülebilir dosyayı çalıştıran bir cron işi kurmam gerekiyor.

Root olarak giriş yaptım ve yazdım crontab -e

Sonra aşağıdakini girdim ve dosyayı kaydettim.

0 * * * *  /path_to_executable

Ancak, cron işi çalışmıyor.

/...path_to_executableYazdığımda bir segmentasyon hatası aldığımı görüyorum . Yürütülebilir dosyayı yalnızca bulunduğu klasörden çalıştırabilirim. Bu sorunu çözmenin bir yolu var mı?


8
Bu kötü bir başlık. Cron işini nasıl kuracağınızı biliyorsunuz; bilmek istediğiniz şey, komutun nasıl çalıştırılacağıdır.
David Thornley

5
superuser.com'a aittir (doğrudan programlama ile ilgili değildir)
Philipp

3
Yanlış başlık, ama çözümü bu şekilde buldum.
Roman Holzner

Çalıştırılabilir dosyanız muhtemelen başlatılmıştır. İçinde syslog (3) kullanmanızı tavsiye ederim (ve en azından başlatıldığından emin olmak için başlangıçta bir günlük mesajı yazın).
Basile Starynkevitch

Yanıtlar:


162
0 * * * * cd folder_containing_exe && ./exe_name

programın çalışması için ayarlanması gereken başka bir şey olmadığı sürece çalışmalıdır.


11
yerine && kullanın, aksi takdirde ilginç şeyler olabilir (özellikle rm ile kullanıldığında)
Reactormonk

4
Haklısın. &&, cd hedefinin var olmama ihtimali varsa çok daha iyidir (örneğin, diretory çalışmayan bir NFS sunucusundaysa).
joast

Günümü kurtar! Teşekkürler!
Chiakie

Mutlak bir yola da ihtiyacınız olduğuna dikkat edin (yani kök
dizinden

8

Bunu çözmenin çözümü, neden segmentasyon hatası aldığınızı bulmak ve düzeltmektir.


5

@hourlyAnında da kullanabilirsiniz0 * * * *


merak ediyorum bu çözüm hangi dakikada çalışıyor @hourly 0'da mı?
ojblass

1
@ojblass @hourlytam olarak eşanlamlıdır 0 * * * *, hiçbir fark yoktur.
Marek Skiba

2

Başka bir dizinden çalıştırıldığında yürütülebilir dosyanın çalışmayacağını mı söylediniz? Bu, çalıştırılabilir dosyadaki bir hatadır. Olası nedenlerden biri, yürütülebilir dosyanın yüklü klasörden bazı paylaşılan kitaplıklar gerektirmesidir. Ortam değişkenini kontrol edebilirsinizLD_LIBRARY_PATH



0

CYürütülebilir dosyayı bu şekilde çalıştıramadığım için shell script, aşağıdakileri yapan bir basit yazdım

cd /..path_to_shell_script
./c_executable_name

Cron işleri listesinde, kabuk betiğini çağırıyorum.


0

kullanım

path_to_exe >> log_file

komutunuzun çıktısını görmek için ayrıca hatalar ile yeniden yönlendirilebilir

path_to_exe &> log_file

ayrıca kullanabilirsin

crontab -l

düzenlemelerinizin kaydedilip kaydedilmediğini kontrol etmek için.


crontab -l, root olarak oturum açtığımda cron işini gösterir. Log_file dosyasını denedim ama boş.
Anonim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.