У меня есть приложение для развертывания на Java, и я запустил сценарий systemd для его запуска.Мое java-приложение зависит от базы данных Neo4j, которая также установлена с systemd.
Вот мой сценарий systemd для моего Java-приложения:
[Unit]
Description=My Java app
Requires=neo4j.service
After=network.target neo4j.service
[Service]
WorkingDirectory=/opt/my_app
ExecStart=/bin/sh -ec "java ..."
Моя проблема в том, что мое Java-приложение запущенопока порт болта Neo4j еще не готов.Действительно, процесс neo4j.service быстро запущен, но порт 7687 с болтом работает примерно через 10 секунд после запуска процесса neo4j.Итак, с помощью приведенного выше сценария мое приложение Java запускается слишком рано и находится в неправильном состоянии.Я должен перезапустить его вручную после того, как порт болта Neo4j будет готов, чтобы он заработал.
Как я могу указать моему приложению Java в моем сценарии systemd дождаться готовности конкретного порта болта Neo4j перед запуском?Я работаю над Ubuntu 18.04.