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


12

У мене є баночка, яка працює назавжди (нескінченна петля з розеткою для прослуховування сокета) і мені потрібна, щоб вона працювала у фоновому режимі в усі часи. Прикладом може бути: "java -jar test.jar" Як це зробити? Спасибі заздалегідь!

Відповіді:


8

декілька способів:

  1. додавання &ззаду. Однак, використовуючи це, програма все одно буде припинена, якщо ви закрили термінал, який запустив програму.

  2. Розпочати screenсеанс і запустити програму всередині нього; ви можете відключити screenсеанс і закрити термінал. Пізніше ви можете знову приєднатися до сеансу і опинитися на консолі, ніби ви там були весь час. Однак перед запуском програми вам потрібно буде запустити сеанс на екрані, і якщо ви забули це зробити, ви нічого не можете з цим зробити.

  3. Використовуйте disownконтроль роботи зі своєї оболонки. Це від'єднає завдання від вашого tty, і ваша програма не буде припинена, коли tty закрита. Однак я не думаю, що немає способу приєднати відмовлену роботу.


13

Командний рядок, який я завжди використовував протягом тривалого часу, щоб тривати через виходи, - це "nohup", тому у вашому випадку це

nohup java -jar test.jar &

& Важливо, щоб ви могли запустити ще одну оболонку. Вважаю, це не триватиме через перезавантаження.


7

Якщо під "повсякчас" ви маєте на увазі, що він починає працювати, коли машина завантажується, вам потрібно буде запустити його як частину сценаріїв завантаження. Брудний спосіб зробити це - додати

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

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

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

Невеликі приклади на веб- сайті http://www.howtoforge.com/forums/archive/index.php/t-3628.html

Велике пояснення на http://developer.novell.com/wiki/index.php/Writing_Init_Scripts


Інша можливість, якщо ви хочете, щоб вона працювала лише з пером користувача, - це помістити її в cron і використовувати "@reboot" як час для запуску. Докладні відомості див. У розділі "Чоловік 5".
pjz

3
java -jar test.jar &

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


1

Ви можете виконати будь-яке завдання у фоновому режимі в Linux, додавши символ "&" до кінця командного рядка, наприклад

java -jar test.jar &


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.