#java #amazon-ec2 #server #hapi-fhir
#java #amazon-ec2 #сервер #hapi-fhir
Вопрос:
Я новичок в Java. У меня есть сервер hapi fhir, работающий на AWS, путем клонирования этого репозитория (https://github.com/hapifhir/hapi-fhir-jpaserver-starter )
Я запускаю свой сервер с помощью следующей команды: «sudo mvn -e jetty: run»
—
Моя проблема:
Как только я выхожу из AWS, мой сервер останавливается. Когда я захожу в свой экземпляр AWS через файл .pem, экземпляр AWS запускается с ubuntu 18.04 LTS с сервером nginx.
Спасибо
Комментарии:
1. создайте сервис с помощью systemd. смотрите это — linuxconfig.org/how-to-create-systemd-service-unit-in-linux
Ответ №1:
Идеальный подход к выполнению или настройке java-приложения на AWS — запустить его как демон, настроив systemd script или init в linux.
В вашем случае приложение останавливается, как только вы закрываете терминал, потому что вы запускаете его в терминале без команды nohup, когда терминал закрыт, приложение также останавливается, поскольку поток управления остановлен. Если вы просто хотите запустить приложение в отдельном фоновом потоке, не прибегая к фактической настройке его как службы в Linux, вы можете использовать nohup
команду (предпочтительным подходом является настройка systemd для регистрации Java-приложения в качестве службы) :
nohup java -jar yourjarName amp;
Комментарии:
1. да, я хочу что-то подобное этому, но я не могу найти ни одного файла jar с надписью «yourjarname». вы можете открыть мою ссылку на репозиторий, ранее опубликованную
2. @vikrantchauhan Из ссылки git hub, которую вы сохранили в вопросе, указано, что вы можете запустить ее как jar для приложения springboot. Как вы создаете код своего приложения? Что это за приложение?
3. @vikrantchauhan вы используете встроенный сервер jetty для запуска приложения в соответствии с командой в вопросе. Но в предоставленной вами ссылке они четко указали, что это нежелательный подход для запуска его как сервиса. Создайте war или jar с помощью
mvn clean install
, а затем разверните это. Прочитайте документацию, если вы не понимаете, что там подробно объясняется. Используйте springboot jar, если вы не хотите настраивать tomcat или что-либо еще для его развертывания.4. Спасибо. Возможно, вы правы, но, поскольку я совсем не знаю Java, я не могу протестировать его прямо сейчас.
Ответ №2:
запустите его как демон:
"sudo mvn -e jetty:run amp;"
Команда amp;
выполняется в фоновом режиме.
От man bash:
Если команда завершается управляющим оператором amp;, оболочка выполняет команду в фоновом режиме в подоболочке. Оболочка не ожидает завершения команды, и статус возврата равен 0.
Комментарии:
1. Спасибо, но как я могу перезапустить его на случай, если я захочу, иногда он говорит, что уже используется