WebLogicホスティングサーバーを起動するいくつかのシェルスクリプトがあります。以下を実行する基本スクリプトを設計する必要があります。
- 実行コンポーネント\ホスティングサーバーシェルスクリプト
- コンポーネントのポートが2分間リッスンしていることを確認してください(この値は何でも可能ですが、これらのサービスは起動に2分以上かかるべきではありません)。
- 2分以内にサービスが開始された場合は、次のサービスを開始し、それ以外の場合はサービスの開始に失敗したというログメッセージを作成して続行します。
スクリプトは次のとおりです。
svcs = some_array_of_svcs
log = '/path_to_log/log.txt'
' start each service'
for each $svc in $svcs
echo "starting $svc" >> ${log}
. /path_to_scripts/$svc
' check to see if the service started
loop for max 2 mins
if port is listening
echo 'Service started successfully' >> ${log}
start the next service
else
echo 'Service did not start within the specified timeout' >> ${log}
start the next service
end if
next
ポートの状態を確認するにはコードが必要ですNサービスあたりの時間(分)
ベストアンサー1
netcatは救助されています... NetcatはTelnetと非常によく似ていますが、いくつかの素晴らしい追加オプションがあります。この場合、特別な用途の1つは、接続が有効であることを確認する-zです。タイムアウト変数を使用すると、システムにサービスが受信中であるかどうかを繰り返し確認することができます。
ローカルではSSHを有効にしましたが、Telnetは有効にしていません。
$ nc -zw10 localhost 22
$ echo $?
0
$ nc -zw10 localhost 23
$ echo $?
1
テストをより明確にするために、前述のタイムアウト2分を仮定します。 4回確認し、毎回30分間タイムアウトします。日付スタンプはより良いかもしれませんが、これは始まりです。
for i in {1..4}; do
nc -zw30 localhost 22
x=$?
[[ $x -eq 0 ]] && break
done
if [[ $x -eq 0 ]]; then
echo 'Service started successfully' >> ${log}
else
echo 'Service did not start within the specified timeout' >> ${log}
fi
start next service