Есть ли другой способ отслеживать выполняемый Java-процесс, чем использовать PID с Monit?Мониторинг процесса демонстрации Java с помощью Monit
ответ
Вы не можете использовать monit без PID-файла. Если ваш процесс не создает PID-файл, вам нужно будет создать оболочку, чтобы запустить программу и создать файл PID для monit. См. Здесь в официальном Monit FAQs.
Edit:
монит имеет путь, отличный от PID-файл, который является имя процесса. Но для этого процесса имя должно быть уникальным. Из documentation:
ПРОВЕРКА ПРОЦЕССА [уникальное имя] PIDFILE [путь] | MATCHING [regex]
[путь] - это абсолютный путь к pid-файлу программы. Файл pid - это файл, содержащий уникальный идентификатор процесса. Если pid-файл не содержит или не содержит номер PID работающего процесса, Monit вызовет метод запуска записи, если он определен.
[regex] является альтернативой использованию файлов PID и использует соответствие шаблону имени процесса, чтобы найти процесс для мониторинга. Первое совпадение - , поэтому эта форма проверки наиболее полезна, если имя процесса уникально. Pid-файл следует использовать там, где это возможно, поскольку он определяет ожидаемый pid точно (сопоставление с образцом не будет полезно для процессов, которые запускают дочерний процесс с использованием fork/clone, так как дочерний элемент будет соответствовать временному шаблону ). Вы можете проверить, соответствует ли процесс шаблону из командной строки, используя monit procmatch «regex-pattern». Это будет перечисляет все процессы, соответствующие или нет, шаблон регулярного выражения.