Как получить услугу на удаленном сервере CentOS 7 для сохранения после выхода из системы?

Я экспериментирую с запуском приложений Spring Boot на удаленном веб-сервере CentOS 7, который с первого дня успешно обслуживал приложения на Apache и автономный экземпляр tomcat. Тем не менее, когда я ssh на удаленном сервере и запускаю приложение Spring Boot (которое находится в банке, в которой содержится собственный встроенный экземпляр tomcat), банкомат веб-службы Spring Boot работает успешно, пока мое ssh соединение работает вживую, но затем завершается после моего Сессия ssh завершается. Какие конкретные шаги я должен предпринять, чтобы заставить jar содержащую веб-службу Spring Boot, продолжить работу после завершения моей сессии ssh ?

Вот что я набрал, чтобы запустить приложение, используя сеанс ssh из моего devbox на многие сотни миль:

 [ ~]$ cd /path/to/webservice [ webservice]$ kill $(lsof -t -i:9000) kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec] [ webservice]$ java -jar mywebservice.jar 

Поскольку apache пересылает запросы для внутренней службы на port 9000 , служба затем подвергается внешнему миру с помощью apache url somedomain.com/someurlpattern пока я не somedomain.com/someurlpattern сеанс ssh .

One Solution collect form web for “Как получить услугу на удаленном сервере CentOS 7 для сохранения после выхода из системы?”

Запуск процесса в фоновом режиме и закрытие сеанса ssh

Есть много способов сделать это:

1. Команда nohup

Вы можете использовать команду nohup для выполнения команд после выхода из командной строки.

Пример:

  $ nohup java -jar mywebservice.jar > /path/to/webservice/logs/mylogfile.txt & ## exit from shell or close the terminal ## $ exit 

2. Команда disown bash

Другой вариант – использовать команду disown следующим образом:

Пример:

  $ java -jar mywebservice.jar > /path/to/webservice/logs/mylogfile.txt & [1] 10685 $ disown 10685 $ ps PID TTY TIME CMD 10685 pts/0 00:00:00 wget 10687 pts/0 00:00:00 bash 10708 pts/0 00:00:00 ps $ logout 

3. Команда screen

Вы также можете использовать команду screen для этой цели.

  • Каков наилучший способ периодически очищать / удалять файлы журнала Apache
  • Попытка создать туннель для MySQL через SSH
  • Какое место лучше всего разместить php-файлы над корневым каталогом сервера?
  • Как я могу понять, использует ли моя система jBoss?
  • Apache SSL: серверный сертификат не содержит идентификатор, который соответствует имени сервера
  • Использование nmcli для установки маски подсети и IP-адреса шлюза
  • Получить веб-интерфейс передачи, работающий с веб-сервером
  • Где я должен разместить автономное веб-приложение, которое не требует внешнего веб-сервера?
  • Как перезапустить службу systemd после обновления файлов на сервере Gunicorn?
  • Веб-интерфейс для поиска / grep / ack
  • Запуск приложения под Tomcat
  • Linux и Unix - лучшая ОС в мире.