2016-12-07 11 views
0

私は現在、安全なプレイブックを使ってマイクロサービスを配備しようとしています。そして、すべてのマイクロサービスはjava -jarコマンドを使用して展開します。今は、別のJavaアプリケーションを配備する前に、依存するjava-jarプロセスを見つけてそれを削除するための、不可解なプレイブックを作成しようとしています。特定のjavaプロセスとkillを見つけるための可能なプレイブック

私はここでアイデアが不足しています。私はinit.dでjava deamon用のスクリプトを作成することを考えていました。しかし、もし私がそれをしてサービスを止めれば、私は望んでいないすべてのJavaプロセスを停止します。ps -ef | grep java

ルート 28330 1 1午後01時52分のため

出力? 00:00:56 java -jar -DCONFIG_FOLDER =/opt/app/microservices/deploy/dal-core/config /opt/app/microservices/deploy/dal-core/enrollment-vehicle-dal-core-0.0.1 -SNAPSHOT.jar

ルート 29143 1 2 14:22? 00:00:49 java -jar -DCONFIG_FOLDER =/opt/app/microservices/deploy/dal-core/config /opt/app/microservices/deploy/dal-core/enrollment-vehicle-listener-0.0.1-SNAPSHOT .jar

ルート 29879 1 2 14:23? 00:00:48 java -jar -DCONFIG_FOLDER =/opt/app/microservices/deploy/dal-core/config /opt/app/microservices/deploy/dal-core/enrollment-account-dal-core-0.0.1 -SNAPSHOT.jar

ルート 31093 1 3 14:28? 00:01:04 java -jar -DCONFIG_FOLDER =/opt/app/microservices/deploy/listener/config /opt/app/microservices/deploy/listener/enrollment-account-listener-0.0.1-SNAPSHOT.jar

14:57 31208 18879 0のasadmin PTS/1 0時00分00秒上記のシナリオではgrep --color =自動javaの

は、私が起きた場合は、再度、登録アカウント-DAL-コアを展開しますenrollment-account-listener(pid:31093)、次にenrollment-account-dal-core(pid:29879)を1番目に殺すべきです。

私はすべてのマイクロサービス用のプレイブックを持っていますので、ハード・コードもできません。

答えて

0

私は確信していませんが、モジュールのpatternパラメータが問題を解決することを願っています。文書hereがあります。指定された名前を持つサービスは、サービスのステータスコマンドに応答しない場合

- name: Killing enrollment-account-listener 
    service: 
    name: enrollment-account-listener 
    state: stopped 
    pattern: enrollment-account-listener 

ドキュメントは、psコマンドの出力にpatternを見つけ、次のように述べています私はあなたのAnsibleのタスクは、このコードのように見えると思います。文字列が見つかった場合、サービスは実行中であるとみなされます。

問題が解決しない場合は、commandまたはshellモジュールを使用してこの問題の解決方法を見つけることができます。

+0

フィードバック32cupoありがとうございます。私はプレイブックモジュールを使用する機会を得られなかったことを申し訳ありませんが、それは完璧に見えます。はい、問題を解決するためにシェルモジュールを使用しました。次のようなものがあります: "kill $(ps aux | grep -i 'enrollment-account' | awk '{print $ 2}')" ...........このコマンドは文字列 "enrollment-account"をgrepし、プロセスIDをkillします:) – Manjil

関連する問題