当前位置: 首页 > 知识库问答 >
问题:

Ansible playbook查找特定java进程并终止

燕光熙
2023-03-14

我现在正致力于使用 ansible-playbook 部署微服务。所有的微服务都使用java-jar命令进行部署。现在,我正在尝试编写一个可操作的剧本,以便在部署其他进程之前查找并终止依赖的java-jar进程。

我这里的点子快用完了。我想在init中创建一个脚本。d代表java deamon。但是,如果我这样做并停止服务,它将停止所有我不想要的java进程。

ps-ef|grep java的输出

root 28330 1 1 13:52?00:00:56 Java-jar-d config _ FOLDER =/opt/app/micro services/deploy/dal-core/config/opt/app/micro services/deploy/dal-core/enrollment-vehicle-dal-core-0 . 0 . 1-snapshot . jar

root 29143 1 2 14:22?00:00:49 Java-jar-d config _ FOLDER =/opt/app/micro services/deploy/dal-core/config/opt/app/micro services/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/微服务/部署/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-d config _ FOLDER =/opt/app/micro services/deploy/listener/config/opt/app/micro services/deploy/listener/enrollment-account-listener-0 . 0 . 1-snapshot . jar

asadmin 3120818879 0 14:57 pts/1 00:00:00 grep--color=auto.java

在上面的场景中,如果我再次部署注册帐户dal-core,我应该首先杀死注册帐户侦听器(pid: 31093),然后杀死注册帐户dal-core(pid: 29879)。

我有一个针对所有微服务的剧本,所以我也无法对其进行硬编码。

共有1个答案

刘骏祥
2023-03-14

我不确定,但我希望<code>服务

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

文档指出,如果具有给定名称的服务不响应服务状态命令,则在ps命令的输出中找到<code>模式</code>。如果找到字符串,将假定服务正在运行。

如果不起作用,您仍然可以使用< code>command或< code>shell模块来找到解决此问题的方法。

 类似资料:
  • 查找特定记录并更新

  • killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用。 killall 命令的基本格式如下: [root@localhost ~]# killall [选项] [信号] 进程名 注意,此命令的信号类型同 kill 命令一样,因此

  • 这里有一段代码演示了一个案例,其中用于处理DNS的Java标准扩展无法正确查找特定域的MX记录,而实用程序这样做没有问题。我已经在不同的机器、网络和操作系统(AWS Ubuntu、Linode CentOS、本地Windows)上复制了这一点。 同时,这是: 可能是什么问题?我对可靠地从 Java 中查找 MX 记录感兴趣。 环境:

  • 我有500000个代理,它们是在上下文中添加的,但不在显示中。对于我来说,是否有一种简单的方法来定位特定的代理(不显示它),并使用代理监视器跟踪其属性随时间的变化,如下所示:

  • 问题内容: 我不知道如何在下面编写查询。 我的桌子是 我需要在col2中同时存在两个参数的地方选择不同的col1 id。例如。如果我发送6,7应该发送给我5 问题答案: 尝试:

  • 我目前集成了maven、jenkins、Nexus和git,我正在学习这些工具。 我的要求是告诉maven只从pom中提到的存储库下载依赖项。xml,而不是来自我的Nexus存储库,但它的作用恰恰相反。 我已经在my settings.xml的repository下声明了我的Nexus版本和快照存储库。我如何告诉maven从特定的存储库而不是Nexus repo下载依赖项。 下面是我的pom。xm