Intereting Posts
Как включить дерево устройств с моим ядром? индикатор выполнения, чтобы узнать, сколько выполнено выход скрипта оболочки Как проверить, откуда пришли пользователи? исключить конкретный файл из bash_completion Цветной `cat` для исходных файлов и файлов сценариев? Могу ли я искать историю bash для всех пользователей на сервере? Как сделать запись рабочего стола pcmanfm правой кнопкой мыши только для папки «Рабочий стол»? Tmux – Получить панель # каждой панели в окне из сценария? Как лучше всего изучить Linux / Unix? Удалите горячую клавишу Alt + F1 из Gnome Shell Существуют ли более передовые ACL-файлы для файловой системы за пределами традиционных «rwx» и POSIX ACL? Что лучше для установленных приложений: / usr / bin или домашний каталог пользователя? Процесс специфический ulimit все еще низкий после изменений в мягкие и жесткие ulimits Понимание вывода ls -l Какое программное обеспечение wiki использует CentOS.org?

Как получить услугу на удаленном сервере 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 .

Запуск процесса в фоновом режиме и закрытие сеанса 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 для этой цели.