Javaプロセスが実行中であることを確認し、そうでない場合は再実行してください。

Javaプロセスが実行中であることを確認し、そうでない場合は再実行してください。

Ubuntu 15.04では、vncセッションを介してJavaアプリケーションを実行しています。システムの起動中に開始される8つの定義済みセッションがあります。私の質問は、プロセスがさまざまなvncモニタ(例:1〜:8)で実行され続けていることを確認し、指定されたvncセッションが実行されていないことを検出した場合、Javaプロセスを再起動するスクリプトを作成する方法です。

ありがとう

答え1

Ubuntu 15.04は、これらのニーズを満たすためにシステム化されています。

以下は、アプリケーションに書き込む必要がある.serviceファイルの例です。

[Unit]
Description=Some kind of description

[Service]
Type=simple
ExecStart=<path to your bin with args if needed>
Restart=on-failure

このファイルを<your-app-name>.service次の名前で保存/etc/systemd/system/し、次のコマンドを実行して起動します。

sudo systemctl start <your-app-name>

広告の掲載を開始するには、サービスを有効にしてください。

sudo systemctl enable <your-app-name>

次から協会上記のファイルを必要に応じて調整するために必要な追加情報を見つけることができます。

答え2

runit私はお勧めするか、包装しますdaemontools。彼らは非常に似ています。これは、プロセスを継続的に実行して自動的に再起動できる堅牢なツールです。

ソフトウェアはinittabまたはrcスクリプトから起動され、プロセスを設定、起動、およびrunit監視できます。daemontools

すべてのプロセスを細かく制御でき、ロギングが組み込まれており、これらのパッケージがプロセスを開始するためです。そしてこれを待つと、死んだプロセスは自動的に再開されます。また、クイック再起動を監視し、そのような場合に設定することを選択できるパラメータに基づいてこれを制限します。

これら2つのパッケージのうちの1つは、オペレーティングシステムのリポジトリで利用できます(どのパッケージであるかは言及していません)。どちらもDebianとUbunutのリポジトリにあり、CentOSにもリポジトリがあることがわかります。

以下は、これら2つのオプションとその他のオプションを説明するページです。 http://www.skarnet.org/software/s6/why.html

関連情報