Как правлильно запускать jar на удаленной машине через jenkins?
3. Дженкинс выполняет java -jar app.jar
Запускайте приложение в фоне, с nohupnohup java -jar app.jar &
4. Дженкинс закрывает соединение , тем самым закрывает запуск комманды java
Закрытие команды java, запущенной через nohup не произойдет, но вам нужно будет добавить шаг, который сможет проверить, что приложение запустилось. и шаг, который впоследствии остановит приложение.
Например проверить лог файлы на определенные слова (ERROR, FAIL). 
Либо добавить в ваше приложение некий API, который можно дернуть, а он в ответ "application version xxx is running"
И добавить остановку вашего приложения - через kill или через тот же API.
а как выглядят шаги 2, 3 и 4? можно подробнее?
Просто дженкинс стартует процесс и должен дожидаться его окончания
А потом только переходить к шагу (4)