Фоновый Java-процесс не завершается - PullRequest
0 голосов
/ 20 января 2010

Я запускаю Java-программу в фоновом режиме с java what.ever.Class &. Он выдает исключение в первой строке и выводит стек.

Я ожидаю, что в этот момент Java-процесс завершится, но по какой-то причине он останется там в ожидании (не выполняется код, не создаются потоки и т. Д.). Это не зомби, потому что он правильно выходит на первом SIGTERM. В чем причина, по которой он не выходит сразу?

Добавлено:

На самом деле это происходит не каждый раз. Если я запускаю команду из командной строки - она ​​просто отлично выходит. Если та же команда запускается из скрипта (это просто #!/bin/sh / java what.ever.Class &), то она остается в фоновом режиме.

nohup и перенаправления не работают.

Использование Debian, среда выполнения OpenJDK (IcedTea6 1.6.1) (6b16-1.6.1-2) / 64-разрядная серверная виртуальная машина OpenJDK (сборка 14.0-b16, смешанный режим). Ш на самом деле тире.

1 Ответ

1 голос
/ 20 января 2010

Можете ли вы проверить, находится ли он в остановленном состоянии, ожидая ввода или вывода?

Если да, попробуйте перенаправить ввод, вывод и ошибки, если они вам не нужны:

java what.ever.Class </dev/null &>/dev/null &

или в файл, если они вам нужны:

java what.ever.Class </dev/null &>outputfile &

или через nohup, если вам нужны выходы и вы хотите, чтобы процесс продолжался даже после выхода из системы:

nohup java what.ever.Class </dev/null &
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...