Назад | Перейти на главную страницу

Запустить Jar в фоновом режиме в Linux

У меня есть банка, которая работает вечно (бесконечный цикл с потоком прослушивания сокета), и мне нужно, чтобы она всегда работала в фоновом режиме. Примером может быть: "java -jar test.jar" Как мне это сделать? Заранее спасибо!

Подсказка командной строки, которую я всегда использовал для длительного времени работы до выхода из системы, - это «nohup», поэтому в вашем случае

nohup java -jar test.jar &

Знак & важен для запуска другой оболочки. Я считаю, что это не продлится до перезагрузки.

несколько путей:

  1. добавление & сзади. Однако, используя это, программа все равно будет завершена, если вы закроете терминал, который запустил программу.

  2. Начать screen сеанс и запустить программу внутри него; вы можете отсоединить screen сеанс и закройте терминал. Позже вы можете снова подключиться к сеансу и снова оказаться на консоли, как если бы вы были там все время. Однако вам нужно будет запустить сеанс экрана перед запуском программы, и если вы забыли это сделать, вы ничего не сможете с этим поделать.

  3. Использовать disown управление заданиями из вашей оболочки. Это отсоединит задачу от вашего tty, и ваша программа не будет завершена, когда tty будет закрыт. Тем не менее, я не думаю, что есть какой-то способ вернуть отказ от работы.

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

java -jar test.jar> / dev / null 2> & 1 &

в /etc/rc.local (или замените / dev / null вашим любимым файлом журнала).

Лучше было бы создать сценарий init.d, который запускается на соответствующих уровнях выполнения (например, вы можете не захотеть, чтобы он запускался на уровне выполнения 0, 1 или 6). Таким образом, вы также можете автоматически перезапустить его, если он умирает, и иметь более удобный интерфейс для временной остановки.

Небольшие примеры на http://www.howtoforge.com/forums/archive/index.php/t-3628.html

Большое объяснение в http://developer.novell.com/wiki/index.php/Writing_Init_Scripts

java -jar test.jar &

Оператор & заставит процесс запускаться в фоновом режиме, после этого вы можете запустить команду 'top', чтобы увидеть, что он запущен.

Вы можете запустить любую задачу в фоновом режиме в Linux, добавив символ '&' в конец командной строки, например

java -jar test.jar &

Вы можете использовать версию Java Service Wrapper для сообщества, доступную здесь:

http://wrapper.tanukisoftware.org/doc/english/download.jsp

Затем вы можете запустить его при перезагрузке:

http://wrapper.tanukisoftware.org/doc/english/launch-nix-boot-debian.html

Ставить & в конце: java -jar test.jar &