Ich muss einen Cron-Job einrichten, der einmal pro Stunde eine mit gcc kompilierte ausführbare Datei ausführt.
Ich habe mich als root angemeldet und crontab -e
Dann habe ich folgendes eingegeben und die Datei gespeichert.
0 * * * * /path_to_executable
Der Cron-Job funktioniert jedoch nicht.
Ich sehe das, wenn ich /...path_to_executable
Ich habe einen Segmentierungsfehler. Ich kann die ausführbare Datei nur in dem Ordner ausführen, in dem sie sich befindet. Gibt es eine Möglichkeit, dieses Problem zu lösen?
0 * * * * cd folder_containing_exe && ./exe_name
sollte funktionieren, es sei denn, es muss etwas anderes eingerichtet werden, damit das Programm ausgeführt werden kann.
Die Lösung besteht darin, herauszufinden, warum der Segmentierungsfehler auftritt, und diesen zu beheben.
Sie können auch @hourly
Augenblick von 0 * * * *
Wenn Sie Ubuntu verwenden, können Sie ein Shell-Skript in einem der folgenden Ordner ablegen: /etc/cron.daily
, /etc/cron.hourly
, /etc/cron.monthly
oder /etc/cron.weekly
.
Weitere Informationen finden Sie in diesem Beitrag: https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job
Meinten Sie, dass die ausführbare Datei nicht ausgeführt werden kann, wenn sie aus einem anderen Verzeichnis aufgerufen wird? Dies ist eher ein Fehler in der ausführbaren Datei. Ein möglicher Grund könnte sein, dass die ausführbare Datei einige freigegebene Bibliotheken aus dem installierten Ordner erfordert. Sie können die Umgebungsvariable LD_LIBRARY_PATH
Da ich die ausführbare Datei C
so nicht ausführen konnte, schrieb ich eine einfache Shell script
das macht folgendes
cd /..path_to_Shell_script
./c_executable_name
In der Liste der Cronjobs rufe ich das Shell-Skript auf.
verwenden
path_to_exe >> log_file
um die Ausgabe Ihres Befehls zu sehen, können auch Fehler mit umgeleitet werden
path_to_exe &> log_file
auch du kannst verwenden
crontab -l
um zu überprüfen, ob Ihre Änderungen gespeichert wurden.