実行可能ファイルを毎時間実行するようにcronジョブを設定するにはどうすればよいですか?


92

1時間ごとにgccを使用してコンパイルされた実行可能ファイルを実行するcronジョブを設定する必要があります。

rootとしてログインして入力しました crontab -e

次に、以下を入力してファイルを保存しました。

0 * * * *  /path_to_executable

ただし、cronジョブは機能しません。

入力する/...path_to_executableと、セグメンテーション違反が発生します。実行可能ファイルは、それが置かれているフォルダーからしか実行できません。この問題を解決する方法はありますか?


8
それは悪いタイトルです。cronジョブの設定方法を知っています。あなたが知りたいのは、コマンドを機能させる方法です。
David Thornley

5
superuser.comに属します(プログラミングには直接関係ありません)
Philipp

3
タイトルが間違っていますが、これが私が解決策を見つけた方法です。
Roman Holzner 14

実行可能ファイルはおそらく開始されています。その中でsyslog(3)を使用することをお勧めします(少なくとも、開始時にログメッセージを作成して、確実に開始されるようにします)。
Basile Starynkevitch 2016

回答:


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

プログラムを実行するために設定する必要があるものが他にない限り、動作するはずです。


11
;の代わりに&&を使用します。そうしないと、興味深いことが起こります(特にrmと共に使用した場合)
Reactormonk

4
あなたが正しい。&&は、cdターゲットが存在しない可能性がある場合(たとえば、ディレクトリがたまたまダウンしているNFSサーバー上にある場合)に適しています。
ジョスト

私の日を救え!ありがとう!
Chiakie

あなたも絶対パス(つまりルートディレクトリから)私の知る限りで必要なことに注意してください
drevicko


5

@hourlyインスタントも使用できます0 * * * *


このソリューションに興味があれば、@ hourlyは0で何分を実行しますか?
ojblass 2017年

1
@ojblass @hourlyはの正確な同義語であり0 * * * *、違いはありません。
Marek Skiba

2

他のディレクトリから呼び出された場合、実行可能ファイルの実行に失敗したということですか?これは、実行可能ファイルのバグです。考えられる理由の1つは、実行可能ファイルが、インストールされたフォルダーからいくつかの共有ライブラリーを必要とすることです。環境変数を確認できますLD_LIBRARY_PATH



0

そのようにC実行可能ファイル実行できなかったので、私はshell script次のことを行うシンプルなものを書きました

cd /..path_to_shell_script
./c_executable_name

cronジョブリストでは、シェルスクリプトを呼び出します。


0

使用する

path_to_exe >> log_file

コマンドの出力を確認するには、エラーをリダイレクトすることもできます

path_to_exe &> log_file

また、あなたは使うことができます

crontab -l

編集が保存されたかどうかを確認します。


rootとしてログインすると、crontab -lはcronジョブを表示します。log_fileを試しましたが、空です。
匿名
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.