aix kshはnohup.outなしでweblogicサーバーを起動し、デフォルトのスクリプトを返します。

aix kshはnohup.outなしでweblogicサーバーを起動し、デフォルトのスクリプトを返します。

私はバックグラウンドでweblogicサーバーを起動し、次のようにすぐにデフォルトスクリプトに戻る(続行スクリプトを実行する)kshスクリプトを作成しています。

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

しかし、nohupコマンドの後、私のスクリプトはハングします。私が望むことをする正しい方法は何ですか?

nohup.outを削除したいです。

私はこれをAIX 7.1で実行しています。

答え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されます。サブシェルでこのコマンドを実行すると、(...)リダイレクトの効果はスクリプトのこの部分に残ります。

関連情報