- - PR -
JAVAをLinuxでcron実行出来ない
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-13 10:09
JAVAの初心者で申し訳ありませんが、困っていますので
分かる方がいれば教えて下さい。 JAVAで検索した結果をメールで送るプログラムを書いたのですが コンソール上では、問題なく実行出来るのですが、Linuxでcronを実行すると 動いてくれません。 環境 OS:CentOS 4.0 JAVAコンテナ:Tomcat5 データベース:postgres メール:JavaMail 問題点の切り分けはしました。(cron実行出来るのは?) 1、Javaでファイル書き出しのみ(データベース、JavaMail使用しない状態)では 問題なく、指定したファイルに書き出しの実行は出来ました 2、データベースで検索した結果を同様に書き出し処理したものは実行出来ませんでした。 cronの仕様なのですか? 教えて下さい。 | ||||
|
投稿日時: 2006-04-13 11:04
ええと、、問題点の切り分けになってなさそうですね。 「実行出来ない」ではなく、「何故、実行出来ない」のかを調べましょう。 cronの仕様と質問されても飛躍しすぎで何を指してるのかさっぱりです。 環境変数等が通常のログイン時と変わることになるので、 その辺りを疑ってみるといいんじゃないでしょうか。 | ||||
|
投稿日時: 2006-04-13 12:16
cron には、どのように登録されていますか?
シェルであれば、そのシェルの内容をここにアップすると、 回答がつきやすいと思います。 | ||||
|
投稿日時: 2006-04-13 21:53
営業に出ていて返信が遅くなりまして申し訳ありませんでした。
あしゅさんありがとうございました。 環境変数の問題だと疑ってはいましたが、cronでは、実行出来ないのには、 腑に落ちないのでスレを立てて、同じ経験がある人がいればヒントでもと思っていました。 flatlineさん、ありがとうございました。 cronの設定は、mail_startのシェルスクリプトを実行 * * * * * /java_sh/mail_start ←通常は、1日に一回のみ実行します。 root、postgresユーザの両方でも実行出来ませんでした(コンソール上はOK) (mail_start)シェルスクリプト #!/bin/sh java /java_pro/MainProgram のみです。 参考になるか分かりませんが、ご教授下さい。 のみです | ||||
|
投稿日時: 2006-04-14 01:18
javaコマンドってスラッシュ区切りのクラス名指定なんか出来ませんけど…。 まさか?!と思って試してみましたが、やっぱり無理でした。 | ||||
|
投稿日時: 2006-04-14 05:27
「コンソール上はOK」とありますので、シェルスクリプトの中身については問題ないと判断します。 # 重要と思われる所をマスクしているのでしょうかね。 上記スクリプトですと、java コマンドへの PATHを指定しておかないと動作しないとおもいます。 ちなみにこのような場合、まず最初に「/var/log/cron」などのログを確認すべきですが、 そちらは行なってないのですか? | ||||
|
投稿日時: 2006-04-14 11:37
cronでは、環境変数は一切設定されていない状態で起動されること
とあるので、もう少し頑張ってみます。 http://www.sleepingbird.net/linux/cron.shtml | ||||
|
投稿日時: 2006-04-14 16:47
libgcj を消してみては?
yum -y remove libgcj とかで。 ワタシはこれで動いています。 java互換のファイルが邪魔をしていることがあります。(RedHat系) cron実行してエラーがある場合は、ユーザー宛てにメールが来ます。 たとえば /var/spool/mail/{ユーザー名} などを参照してみてください。 もしエラーメッセージに「(/usr/lib/libgcj.so.***」とかがあれば、libgcjが邪魔をしている可能性が大いにあります。 j2sdkをインストールされているのなら(おそらく)不要なので yum コマンドでけします。 cron で動かすスクリプトには java のパスやクラスパスを書き連ねておけばうまくいくと思います。 [ メッセージ編集済み 編集者: ひこうきが好き 編集日時 2006-04-14 17:00 ] |