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