Как запустить Solr Jetty в фоновом режиме - PullRequest
11 голосов
/ 26 ноября 2010

Я использую сборку Jetty / Solr, которая поставляется с Solr и хотела бы запускать ее в фоновом режиме, а не в терминале.

Сейчас я запускаю ее с java -jar start.jar, но мне бы хотелосьвойти в файл и запустить в фоновом режиме на сервере, чтобы я мог закрыть окно терминала.

Я уверен, что есть некоторые настройки Java, которые я не могу найти.

Я попытался java -jar start.jar > log.txt &, но не повезло, все еще выводит в окно терминала.

Спасибо.

Ответы [ 5 ]

22 голосов
/ 28 ноября 2010

Попробуйте что-то вроде:

nohup yourcommand > output.log 2>&1 &

nohup предотвратит завершение вашей команды в случае выхода из системы.

& запустит его в фоновом режиме.

> output.log отправит стандартный вывод на output.log

2> & 1 перенаправит stderr на стандартный вывод

4 голосов
/ 26 ноября 2010

nohup используется для выполнения команд, которые запускаются после выхода из оболочки. Здесь вам нужно «2> & 1». Это перенаправляет стандартную ошибку на стандартный вывод. Так что все будет записано в log.txt. Попробуйте это

java -jar start.jar> log.txt 2> & 1

Также вы можете добавить '&', чтобы запустить его как фоновый процесс.

3 голосов
/ 08 октября 2013

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

cd в папку вашего мола, например, моя:

cd /home/spydon/jetty/

Они фактически сделали большую часть работы сфайл jetty.sh, поэтому скопируйте его в /etc/init.d/

sudo cp ./bin/jetty.sh /etc/init.d/jetty

Затем откройте файл в вашем любимом текстовом редакторе, например vim или nano

sudo vim /etc/init.d/jetty

Вначало просто раскомментируйте (удалите хеш (#)) трех строк, которые говорят что-то вроде:

 #chkconfig: 3 99 99
 #description: Jetty 9 webserver
 #processname: jetty

Пока у вас открыт текстовый редактор, также добавьте домашнюю директорию jetty в начало файла, моятеперь выглядит так:

#!/usr/bin/env bash  
#
# Startup script for jetty under *nix systems (it works under NT/cygwin too).
JETTY_HOME=/home/spydon/jetty

# To get the service to restart correctly on reboot, uncomment below (3 lines):
# ========================
 chkconfig: 3 99 99
 description: Jetty 9 webserver
 processname: jetty
# ========================

Теперь вы должны иметь возможность запустить его с

sudo /etc/init.d/jetty start

И если вы хотите, чтобы он запускался при каждой перезагрузке, просто добавьте

sudo ln -s /etc/init.d/jetty /etc/rc1.d/K99jetty
sudo ln -s /etc/init.d/jetty /etc/rc2.d/S99jetty

Это должно работать для большинства современных дистрибутивов, но я пробовал это только на основе Debian.Вы также можете рассмотреть возможность создания символической ссылки на файл jetty.sh, чтобы его было проще обновить.

3 голосов
/ 28 ноября 2010

Вы можете запустить его с screen, если вы используете Unix.

1 голос
/ 26 ноября 2010

Вы можете попробовать nohup, как описано в этом предыдущем ответе .

...