aix ksh inicia o servidor weblogic sem nohup.out e retorna ao script subjacente

0

Estou escrevendo um script ksh, no qual desejo iniciar o servidor weblogic em segundo plano e retornar ao script subjacente imediatamente (continue a executar o script) assim:

nohup path_to_domain_bin/startWebLogic.sh>/dev/null < /dev/null 2>&1

mas meu script desliga depois do comando nohup, qual é o jeito certo de fazer o que eu quero?

por favor note, eu quero me livrar de nohup.out.

Estou executando no AIX 7.1

    
por CaiNiaoCoder 21.07.2014 / 15:17

1 resposta

1

Inicie o comando como uma tarefa em segundo plano, com & no final:

nohup path_to_domain_bin/startWebLogic.sh>/dev/null < /dev/null 2>&1 &

Os redirecionamentos de saída não estão ajudando muito, pois nohup redireciona a saída, como você percebeu. Para se livrar disso, pule nohup e faça o que ele faz (em vez disso, a parte essencial dele) no script:

trap "" 1                            # catch hangup signal
path_to_domain_bin/startWebLogic.sh>/dev/null < /dev/null 2>&1 &

Mas tenho uma sensação desagradável ao descartar completamente as informações que o programa pode lhe dar. Dessa forma, você nem teria um erro se o nome do caminho chamado estivesse errado!

Eu normalmente adiciono essa saída a um arquivo de log, incluindo um pouco de informação adicional, como esta:

(
 LOGFILE=/var/log/weblogic_start.log
 trap "" 1                            # catch hangup signal
 exec 1>> $LOGFILE                    # redirect output a bit more readably
 exec 2>> $LOGFILE
 exec < /dev/null

 path_to_domain_bin/startWebLogic.sh &
 date "+%Y%m%d:%H%M%S weblogic started with PID $!"
)

Os redirecionamentos exec são um pouco mais legíveis, o que compensa em um script IMO; Além disso, a chamada date é redirecionada também. Executar isso em uma subshell (...) garante que o efeito dos redirecionamentos seja mantido nessa parte do script.

    
por 21.07.2014 / 17:50

Tags