Я разработал соединение с сервером сокетов Java, которое работает нормально.
При запуске с терминала он начинает с прослушивания от клиента. Но когда закрываю терминал, он перестает слушать.
Мне нужно продолжить, даже если терминал закрыт пользователем, с которого был запущен файл jar.
Как запустить приложение сокета сервера Java в Linux в качестве фонового процесса?
Есть одна важная вещь, которую нужно сделать после добавления &
в конце команды. Процесс все еще связан с терминалом. Вам нужно запустить disown
после запуска команды java.
java -jar yourApp.jar > log.txt &
disown
Теперь вы можете закрыть терминал.
try,
java -jar yourApp.jar &
&
запустит новый поток процесса, я не проверял это, но если все еще это не работает, тогда перепишите его в файле сценария и запустите i с &
Шаг 1.
Создать новый экран
screen -RD screenname
Шаг 2.
Для входа в экранный терминал
press Enter
Шаг 3.
Запустите вашу команду или скрипт (для запуска в фоновом режиме) во вновь открытом терминале
Шаг 4.
Чтобы выйти из экрана терминала
ctrl + A + D
Шаг 5.
Чтобы отобразить экранные терминалы
screen -ls
, которые будут печатать что-то вроде ниже
There is a screen on:
994.screenname (12/10/2018 09:24:31 AM) (Detached)
1 Socket in /run/screen/S-contact.
Шаг 6.
Для входа в фоновый процесс
screen -rd 994.screenname