![Запуск Java jar на удаленной машине способом «выстрелил и забыл»](https://rvso.com/image/1586955/%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA%20Java%20jar%20%D0%BD%D0%B0%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B5%20%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BE%D0%BC%20%C2%AB%D0%B2%D1%8B%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%B8%D0%BB%20%D0%B8%20%D0%B7%D0%B0%D0%B1%D1%8B%D0%BB%C2%BB.png)
Я хочу запустить свой java jar на удаленной машине, установив SSH-соединение. Я могу запустить jar, но не могу закрыть сеанс SSH, пока не нажму CTRLC.
Ниже представлен мой пакетный файл для запуска jar. Имя пакетного файла — Run_service.bat
@ECHO off java.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar & exit
Попытка выполнить jar из сеанса SSH с помощью следующей команды
ssh -v -o StrictHostKeyChecking=no -l userid IP "D:/Scripts/Run_Service.bat"
Итак, я установил сеанс ssh и могу запустить jar-файл в сеансе.
Служба началась в порту.
Но как только служба запустилась, мне нужно закрыть сессию ssh, но она не закрывается, пока я не нажму CTRLC. Ниже приведено изображение той же службы, запущенной в сессии ssh. Я пробовал много вещей, но ничего не помогло. Пожалуйста, помогите мне найти способ сделать то же самое.
решение1
Попробуй это :
@ECHO off START /B javaw.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar exit
решение2
Бесплатного обеда не бывает; если вы хотите запустить приложение как службу, вам придется установить приложение как службу. Таким образом, если ОС перезапустится, ваше приложение вернется без вмешательства человека. Это также позволяет вам отключиться от сервера SSH и продолжить выполнение процесса. (Вы также можете попробовать cmd /c javaw.exe -jar D:\NSXJarfiles\BulkSolve-0.0.1-SNAPSHOT.jar
, но если процесс завершится, он не вернется)
Для весенней загрузки ознакомьтесь сСлужбы Windowsраздел ссылки, который указывает вам наwinsw, иотдельно поддерживаемый примерописать, как собрать все это воедино