Ksh

aix ksh 在沒有 nohup.out 的情況下啟動 weblogic 伺服器並返回底層腳本

  • July 21, 2014

我正在編寫一個 ksh 腳本,我想在後台啟動 weblogic 伺服器並立即返回到底層腳本(繼續執行腳本),如下所示:

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

但是我的腳本在 nohup 命令之後掛斷了,做我想做的事情的正確方法是什麼?

請注意,我想擺脫 nohup.out。

我在 AIX 7.1 上執行它

將命令作為後台任務啟動,&最後:

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

nohup正如您所注意到的,輸出重定向沒有多大幫助,因為無論如何都會重定向輸出。要擺脫它,請跳過nohup並自己在腳本中執行它的功能(而不是它的基本部分):

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

但是我對完全丟棄呼叫程序可能給你的資訊感到不安。這樣,如果呼叫的路徑名錯誤,您甚至不會收到錯誤消息!

我通常將此類輸出附加到日誌文件中,包括一些附加資訊,如下所示:

(
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 $!"
)

重定向更具可讀性,這exec在 IMO 腳本中得到了回報;此外,date呼叫也會被重定向。在子 shell 中執行它(...)可以確保重定向的效果保留在腳本的這一部分。

引用自:https://unix.stackexchange.com/questions/145704