我正在努力使用ansible-playbook來部署微服務。並且所有微服務都使用java -jar
命令進行部署。現在我正在嘗試編寫一個可靠的手冊,以在部署其他Java程序之前查找並殺死依賴的java -jar進程。Ansible playbook查找特定的java進程並殺死
我在這裏沒有想法了。我正在考慮在init.d中爲java deamon創建一個腳本。但是,如果我這樣做並停止服務,它會停止所有我不想要的java進程。
輸出爲ps -ef | grep java
根 28330 1 1 13時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
root 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
root 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
root 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
的asadmin 31208 18879 0 14:57分/ 1 00:00:00 grep的--color =汽車的Java
在上述情況下,如果我碰巧也再次部署招生賬戶-DAL核心,我應該先殺死註冊帳號監聽器(pid:31093),然後註冊帳號-dal-core(pid:29879)。
我對所有的微服務都有一個劇本,所以我也無法對它進行硬編碼。
謝謝您的反饋32cupo。對不起,我沒有機會使用劇本模塊,但它看起來很完美。是的,我使用了shell模塊來解決問題。就像這樣:「kill $(ps aux | grep -i'enrollment-account'| awk'{print $ 2}')」...........這個命令會grep字符串「enrollment-account」,並終止進程ID :)。 – Manjil