Помогите понять командную строку

Мы запускаем наш Jenkins CI с помощью следующей команды bash, которую я хотел бы понять. Может кто-нибудь объяснить, что делает (единственный бит, который я получаю, это "java -jar jenkins.war"). Спасибо!

nohup java -jar jenkins.war > $HOME/jenkins.log 2>&1 < /dev/null &
5
задан 8 February 2012 в 18:46

2 ответа

nohup означает, что он будет продолжать работать при выходе из оболочки.

> означает перенаправление стандартного вывода в файл

Файл, в который он перенаправляется, является $HOME/jenkins.log. Вы можете найти значение $HOME, запустив echo $HOME

2>&1, что означает перенаправление стандартных ошибок на стандартный вывод, поэтому в этом примере также перейдем к $HOME/jenkins.log.

< /dev/null означает чтение данных из /dev/null. Поэтому, если скрипт ожидает ввода, он будет читать его вместо ожидания ввода пользователя.

А & означает запуск в качестве фоновой задачи и возврат вас в командную строку.

Если вы хотите больше подробностей, спросите в комментариях.

0
ответ дан 8 February 2012 в 18:46
nohup

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

java

затем запускает виртуальную машину Java с параметрами

-jar jenkins.war

, которые сообщают java запустить основной класс из jar-архива jenkins.war

>

пересылает стандартный вывод (который обычно появляется в терминале) в данный файл, в данном случае в $HOME/jenkins.log

2>&1

означает, что optput канала ошибок соединен с выходом стандартного выходного канала.

< /dev/null

отправляет «ничего» в качестве входного потока в команду Java.

Наконец & amp; принудительно запускает задачу так, что элемент управления возвращается к приглашению.

0
ответ дан 8 February 2012 в 18:46

Другие вопросы по тегам:

Похожие вопросы: