Как продолжать запускать java-приложение на aws?

#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. Спасибо, но как я могу перезапустить его на случай, если я захочу, иногда он говорит, что уже используется