Кажется, что фоновые задания, ожидающие ввода , в большинстве сред останавливаются .
Со страницы Википедии в Unix Job Control :
Фоновому процессу, который пытается прочитать или записать на свой управляющий терминал, отправляется сигнал SIGTTIN (для ввода) или SIGTTOU (для вывода). Эти сигналы останавливают процесс по умолчанию, но они также могут обрабатываться другими способами.
А со страницы Рутгерса о промежуточном использовании Unix :
Работа, выполняемая в фоновом режиме, остановится, если потребуется ввод данных. Вход не может быть передан в фоновое задание, поэтому убедитесь, что все необходимые данные доступны для него.
В качестве решения мы просто обновили наш Java-процесс, приняв необязательный аргумент, который заставит основной поток бездействовать бесконечно, а не ждать ввода. У нас есть хук отключения, который будет обрабатывать SIGTERM/SIGINT
сигналы соответствующим образом:
if (args.length >= 0 && StringUtils.equals(args[0], "daemon")) { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }