1時間ごとにgccを使用してコンパイルされた実行可能ファイルを実行するcronジョブをセットアップする必要があります。
ルートとしてログインし、crontab -e
と入力しました
次に、以下を入力してファイルを保存しました。
0 * * * * /path_to_executable
ただし、cronジョブは機能しません。
/...path_to_executable
と入力すると、セグメンテーション違反が発生することがわかります。実行可能ファイルは、それが置かれているフォルダーからのみ実行できます。この問題を解決する方法はありますか?
0 * * * * cd folder_containing_exe && ./exe_name
プログラムを実行するためにセットアップする必要のあるものが他にない限り、動作するはずです。
これを解決する解決策は、セグメンテーション違反が発生している理由を見つけて修正することです。
@hourly
インスタント0 * * * *
を使用することもできます
Ubuntuを使用している場合は、/etc/cron.daily
、/etc/cron.hourly
、/etc/cron.monthly
、または/etc/cron.weekly
のいずれかのフォルダーにシェルスクリプトを配置できます。
詳細については、この投稿をご覧ください: https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job
他のディレクトリから呼び出された場合、実行可能ファイルは実行に失敗しますか?これはむしろ実行可能ファイルのバグです。考えられる理由の1つは、実行可能ファイルがインストールされたフォルダーからのいくつかの共有ライブラリーを必要とすることです。環境変数LD_LIBRARY_PATH
を確認できます
C
実行可能ファイルを実行できなかったため、次のことを行う簡単なShell script
を作成しました
cd /..path_to_Shell_script
./c_executable_name
Cronジョブリストで、シェルスクリプトを呼び出します。
つかいます
path_to_exe >> log_file
コマンドの出力を表示するには、エラーをリダイレクトすることもできます
path_to_exe &> log_file
また、使用できます
crontab -l
編集が保存されたかどうかを確認します。