Ajuda a entender a linha de comando

5

Estamos começando nosso CI Jenkins com o seguinte comando bash que gostaria de entender. Alguém poderia explicar o que está fazendo (o único bit que recebo é "java -jar jenkins.war"). Obrigado!

nohup java -jar jenkins.war > $HOME/jenkins.log 2>&1 < /dev/null &
    
por Pomario 08.02.2012 / 15:46

2 respostas

13

O nohup significa que ele continuará sendo executado quando você sair do shell.

O > significa redirecionar a saída padrão para um arquivo

O arquivo para o qual ele está sendo redirecionado é $HOME/jenkins.log . Você pode encontrar o valor de $HOME executando echo $HOME

2>&1 significa redirecionar os erros padrão para a saída padrão, portanto, neste exemplo, também entraremos em $HOME/jenkins.log .

O < /dev/null significa dados lidos em /dev/null . Portanto, se o script estiver esperando a entrada, ele lerá isso em vez de aguardar a entrada do usuário.

E o & significa executar como uma tarefa em segundo plano e retornar você à linha de comando.

Se você quiser mais detalhes, pergunte nos comentários.

    
por Richard Holloway 08.02.2012 / 15:54
3
nohup

desanexa o seguinte comando da sessão de terminal atual, o que impede que o processo seja fechado na saída do terminal.

java

executa a VM java com as opções

-jar jenkins.war

que informa ao java para executar a classe principal a partir do jar-archive jenkins.war

>

encaminha a saída padrão (que normalmente aparece no terminal) para o arquivo fornecido, neste caso em $HOME/jenkins.log

2>&1

significa que a saída do canal de erro está conectada à saída do canal de saída padrão.

< /dev/null

envia "nada" como fluxo de entrada para o comando java.

Finalmente & amp; força a tarefa em backgrount, de forma que o controle retorne ao prompt.

    
por Michael K 08.02.2012 / 15:56

Tags