自动重启 Solr

自动重启 Solr

我有 3 个 solr 实例正在运行

  1. 使用 tomcat (在 shell 中你会发现类似 -Dcatalina.base=/usr/local/apache-tomcat-6.0.35 -)
  2. 起诉 tomcat_1(在 shell 中你会发现类似 -Dcatalina.base=/usr/local/apache-tomcat-6.0.35_1 -)
  3. 使用 tomcat_2 (在 shell 中你会发现类似 -Dcatalina.base=/usr/local/apache-tomcat-6.0.35_2 -)

我可以写一个 shell 脚本来终止特定实例吗

  1. 对于 1:杀死 tomcat,但不杀死 tomcat_1 和 tomcat_2
  2. 对于 2:杀死 tomcat_1,但不杀死 tomcat 和 tomcat_2
  3. 对于 3:杀死 tomcat_2,但不杀死 tomcat 和 tomcat_1

答案1

四年前,当我写下这个答案时,我还是 Linux 和 shell 新手 —— 而原始答案中所有不必要的greping 和seding 使得这一点显而易见……
当然有一个更简单的解决方案:

pkill -f 'tomcat-6.0.35 '

将向所有进程发送 SIGTERM完整命令行(= 可执行文件的名称 + 启动时使用的参数 — 因此-f)包含字符串“tomcat-6.0.35”。请确保包含尾随空格,以避免匹配“tomcat-6.0.35_1”等。

您还可以使用pgrep而不是pkill来列出进程 ID,而不是直接对它们发送 SIGTERM 信号。

相关内容