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.