2

アプリケーションサーバーの1つ(Glassfish v3.0.1)は、理由もなくクラッシュし続けます。時々、私はインターネットから離れているので、それを再び実行することはできません。したがって、10分間待ってからasadminを実行する簡単なbashスクリプトを作成しました。それは次のようなものです:

#!/bin/bash
while true; 
do sleep 600;
sudo /home/ismetb/glassfishv3.0.1/glassfish/bin/asadmin start-domain; 
done

これは問題なく機能しているようですが、いくつか問題があります。

  1. (ctrl + zボタンを押して)bashスクリプトを終了すると、Javaプロセス(Glassfish)が停止しstart-domainstop-domainコマンドがまったく機能しなくなります。つまり、Glassfishを停止することも、アクセスすることもできません。他の誰かが以前にこの問題を経験したかどうかはわかりません。プロセスが停止した場合、私にできることは、JavaプロセスのIDを探して、ターミナルからそれを強制終了することだけです。これはまったく望ましくありません。スクリプトを終了するとJavaプロセスが停止する理由はありますか?
  2. スクリプトに追加したいのは、Glassfishが使用しているポートを確認するようなものです。ポートが占有されている場合は、Glassfishがダウンしていないと推測できます。(ただし、Glassfishが停止していても、ポート(8080のデフォルト)はGlassfishによって使用されている可能性があります。よくわかりません)。そうでない場合は、簡単なコードを使用して、JavaプロセスのIDを取得し、それらをすべて強制終了できます。その後、start-domainコマンドは正常に機能します。これを行う方法についてのアイデアや方向性はありますか?
4

1 に答える 1

2

cron代わりにジョブを使用できます。rootのcronジョブをインストールするには、次のように入力します

sudo crontab -e

この行を追加します

*/10 * * * * /home/ismetb/glassfishv3.0.1/glassfish/bin/asadmin start-domain

これはasadmin10分ごとに実行されます。

コマンドラインに慣れていない場合は、試してみることもできますがgnome-schedule、私はその経験がありません。

2番目の問題については、curlまたはwgetを使用してGlassfishにアクセスできます。URLを取得したり、管理インターフェースにアクセスしたりすることができます。応答がない場合は、glassfishがダウンしていると想定してください。

于 2013-02-28T12:16:33.790 に答える