0

open jdk と crontab を使用して Ubuntu 10.10 を実行しています。私は、いくつかの優れた機能を実行するきちんとした小さな Java アプリケーションを作成し、それを実行可能な jar ファイルとしてエクスポートしました。コマンドラインから問題なく実行できますが、ファイルを毎日 1 回実行するものが必要でした。そこで、jar ファイルを実際に呼び出すシェル スクリプトを実行する cron ジョブを作成しました。シェル スクリプトは、単独で実行すると正常に動作し、次のようになります。

#!/bin/sh
/usr/bin/java -jar /root/proj/CoolStuff.jar

完璧に動作します。だから私はこれをcrontabに追加しました:

23 14 * * * /root/proj/runScript.sh > /root/proj/log.txt 2>&1

これは完全には実行されません。実際、それは実行されません。log.txt は「エラー」と出てきます。かなりわかりにくいですよね?環境変数を確認しましたが、空想的なものは何もありません。私が見逃している可能性のあるものは他にありますか?ここからどこへ行くべきかについてのアイデアはありますか?このスクリプトを毎日簡単に実行できる方法はありますか?

4

2 に答える 2

0

そのファイルの実行権限を確認してください。

cronは、ログイン時に取得した権限ではなく、さまざまな権限で実行されています。

また、/rootにアクセスしようとします。スクリプトを別の「非ルート」ディレクトリに再配置してみてください。

于 2012-05-04T18:41:56.023 に答える
0

現在の行をコメントアウトして行に/usr/bin/java ..挿入することで、crontab の環境がどのように見えるかを確認してくださいset

コマンドラインから実行set > tmpEnvVarList.txtし、log.txt に表示される内容と比較します。

.profile または .bash_rc (またはその他) が、crontab で使用できない環境変数を設定していることはほぼ確実です。. .profileスクリプトに etc を追加する必要があります。

cbOさんのアイデアもいいですね。

これが役立つことを願っています。

于 2012-05-04T18:45:33.803 に答える