я хочу постоянно запускать мои потоки Java - PullRequest
0 голосов
/ 19 ноября 2009

Я использую Java-приложение, в котором я использовал потоки ... я запускаю это приложение с помощью команды ant на терминале .. Но когда я закрываю свой терминал или нажимаю ctrl + c, тогда запущенная Java-программа останавливается ... Пожалуйста, помогите мне решить эту проблему, так как я хочу постоянно запускать эту программу ...

Ответы [ 7 ]

1 голос
/ 19 ноября 2009

Посмотрите на команду screen для Linux.

1 голос
/ 19 ноября 2009

Вы можете запустить свое приложение как сервис в linux или windows .

1 голос
/ 19 ноября 2009

Если вы убьете процесс Java, Java больше не будет работать. Если вы хотите, чтобы потоки продолжали работать непрерывно, Java-программа должна оставаться активной.

Вызов такой программы с помощью ant обычно не является способом сделать это. В Unix-подобных системах вы обычно запускаете такую ​​программу в фоновом режиме через /etc/init.d сценарии запуска. В Windows эквивалент будет запускать вашу программу как службу, хотя я не уверен в тонкостях, связанных с тем, чтобы заставить Java работать таким образом.

Если вы запускаете что-то из консоли - как насчет того, чтобы просто не убить это и свернуть консоль? Если вы запускаете его из Linux (или Cygwin), просто добавьте & в конец командной строки, и процесс будет выполняться в фоновом режиме.

Расскажите нам больше о своей среде и о том, с какими компромиссами вы готовы смириться (например, свернув миниатюрное окно консоли на панели задач), и мы поможем вам больше. На данный момент единственный определенный ответ, который я могу дать, заключается в том, что «да - Ctrl-C убьет вашу программу (как и предполагалось). Если вы хотите, чтобы она продолжала работать, не говорите, чтобы она прекратила работать». : -)

0 голосов
/ 19 ноября 2009

Я удивлен, что никто не упомянул слишком знаменитую Java Service Wrapper . Это отличное программное обеспечение, если вы разрабатываете длительные процессы (службы a.k.a).

0 голосов
/ 19 ноября 2009

Я думаю, это желаемое поведение. Если вы закрываете свое приложение, оно закрывается.

Если вы хотите запустить приложение в фоновом режиме, вам следует подумать о том, чтобы сделать его службой Windows или deamon.

Если вы хотите продолжить запускать его как приложение на * nix, вы можете использовать GNU Screen .

0 голосов
/ 19 ноября 2009

Звучит так, будто вы хотите демонизировать задачу муравья. Я бы предложил следующую команду:

nohup ant &> ant.log < /dev/null &

nohup позволит программе продолжить работу после закрытия терминала.

0 голосов
/ 19 ноября 2009

Запустите команду ant в фоновом режиме и перенаправьте ее вывод в файл: ant &> my.log &.

Примечание: эта проблема не связана с темами (если я ее не понял).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...