Tomcat: /etc/init.d/tomcat 不存在并且 monit 不工作

Tomcat: /etc/init.d/tomcat dont exist and monit dont work

我正在尝试在 ubuntu 中使用 tomcat 构建监控器,但我遇到了两个问题。

我找不到 pid 文件,并且“/etc/init.d/tomcat”不存在

我该怎么做?

这是我在监控中的代码:

check process tomcat with pidfile "/var/run/tomcat/tomcat.pid"
  start program = "/usr/local/tomcat/bin/startup.sh" as uid tomcat gid tomcat
  stop program = "/usr/local/tomcat/bin/shutdown.sh" as uid tomcat gid tomcat
  if failed port 8080 then alert
  if failed port 8080 for 5 cycles then restart

谢谢!

  1. Tomcat 似乎不考虑配置而创建 pidfile。有关如何说服 Tomcat 创建一个的提示,请参见 this gist
  2. 如果你在 Ubuntu >= 15.04,你应该有 systemd(见 this wiki entry)。因此 start/stop 应该是 systemctl start tomcatsystemctl stop tomcat(或 tomcat.service)。

如果您无法让 Tomcat 创建 pid 文件,您也可以使用 matching 而不是 pid 文件(但我总是推荐 pid 文件!)。

其余的似乎还可以,但有一点限制:如果您开始使用 systemctl 到 start/stop 服务,您需要有超级用户权限才能这样做。您可以省略 start/stop program.

as uid tomcat gid tomcat 部分

编辑 2019-11-02,14:00 UTC

我的配置如下所示:

check process tomcat with pidfile "/var/run/tomcat/tomcat.pid"
  start program = "/bin/systemctl start tomcat.service"
  stop program = "/bin/systemctl stop tomcat.service"
  if failed port 8080 then restart
  if 3 restarts within 5 cycles then unmonitor