Это не всегда "просто работает". Когда JVM порождает дочернего элемента, а затем выключается, дочерний процесс также отключается в некоторых случаях. Это ожидаемое поведение процесса. Под системами WIN32 это просто работает.
например. Если сервер WebLogic был запущен процессом Java, а затем этот процесс завершается, он также отправляет сигнал выключения в WebLogic через ловушку отключения в JVM, что также приводит к завершению работы WebLogic.
Если это «просто работает» для вас, то проблем нет, однако, если вы оказались в положении, когда дочерний процесс также отключается с помощью JVM, стоит взглянуть на команду «nohup». Процесс не будет реагировать на сигнал SIGTERM, но будет реагировать на сигнал SIGKILL, а также на обычные операции.
Обновление: способ, описанный выше, немного излишним. Еще один способ сделать это - использовать «&» в конце команды. Это создаст новый процесс, который не является дочерним по отношению к текущему процессу Java.
P.S. Извините за столько обновлений, я изучал и пробовал это с нуля.