/etc/init.d/tomcat не существует и monit не работает - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь собрать monit с tomcat в Ubuntu, но у меня есть две проблемы.

Я не могу найти файл pid, и "/etc/init.d/tomcat" не существует

Как я могу это сделать?

Это мой код в monit:

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 Ответ

0 голосов
/ 01 ноября 2019
  1. Tomcat, похоже, не создает pid-файл независимо от конфигурации. См. эту суть , чтобы узнать, как убедить Tomcat создать ее.
  2. Если вы работаете в Ubuntu> = 15.04, у вас должно быть systemd (см. эту запись в вики). ). Поэтому start / stop должен быть systemctl start tomcat и systemctl stop tomcat (или tomcat.service).

Если вы не можете заставить свой Tomcat создать pid-файл, вы также можете использовать match вместо pidfile (но я бы всегда рекомендовал pidfile!).

Остальное кажется нормальным с небольшим ограничением: если вы начинаете использовать systemctl для запуска / остановки служб, вам нужно иметь привилегии суперпользователя дляСделай так. Вы пропускаете as uid tomcat gid tomcat часть start/stop program.


edit 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
...