0

私は、Solaris SMF を初めて使用し、Weblogic Nodemanager 用の SMF を作成していました。次の手順に従いました: http://www.camelrichard.org/controlling-weblogic-node-manager-solaris-smf-non-root

強制終了されたときに SMF がサービスを再起動するかどうかをテストするために、別の端末から強制終了シグナルを送信していますが、再起動しません。ログファイルには次のように記載されています。

[ Nov 19 10:17:39 Stopping because process received fatal signal from outside the service. ]
Killed
+ set +x
[ Nov 19 10:17:39 Executing stop method ("/usr/local/Oracle/Middleware/wlserver_10.3/server/bin/killNodeManager.sh") ]
Trying to find the PID of the nodeManager process
Cannot find the PID, NodeManager is not running - cannot kill
[ Nov 19 10:17:39 Method "stop" exited with status 0 ]
[ Nov 19 10:18:40 Method or service exit timed out.  Killing contract 100 ]

私が得られないのは、最後の2行を見ると、最初の行はメソッドが終了したことを示し、2番目の行はメソッドがタイムアウトしたことを示しています。私はそれが奇妙だと思います。ここで何が起こっているか知っている人はいますか?smf の関連部分は次のとおりです。

<service_bundle type='manifest' name='nodemanager'>
<service name='application/management/nodemanager' type='service' version='1'>

   <single_instance />

   <dependency
      name='multi-user-server'
      grouping='require_all'
      restart_on='error'
      type='service'>
      <service_fmri value='svc:/milestone/multi-user-server' />
   </dependency>

   <exec_method
      type='method'
      name='start'
      exec='/usr/local/Oracle/Middleware/wlserver_10.3/server/bin/startNodeManager2.sh'
      timeout_seconds='120' >
<!-- Trying as root for now :
      <method_context>
         <method_credential user='weblogic' group='weblogic' />
      </method_context>
-->
   </exec_method>

 <exec_method
  type='method'
  name='stop'
  exec='/usr/local/Oracle/Middleware/wlserver_10.3/server/bin/killNodeManager.sh'
  timeout_seconds='60' />
4

2 に答える 2

0

最初のメッセージの理由:

メソッド "stop" はステータス 0 で終了しました

これは、usr/local/Oracle/Middleware/wlserver_10.3/server/bin/startNodeManager2.sh にあるメソッド スクリプトで実行されるものが原因です。

通常、機能するメソッドはマクロを返しSMF_EXIT_OK ます。なぜ 2 番目のメッセージが表示されるのかわかりません。「killNodeManager.sh」に関連するものでなければなりません

于 2011-03-30T21:13:56.933 に答える
0

killNodeManager.sh内部エラーが発生したようです。停止するはずのプロセスの PID が見つかりませんでした。そのため、開始から 1 秒以内という非常に迅速に終了しました。ただし、このサービスに関連付けられたコントラクト #100 は、SMF の観点からはまだアクティブでした。「停止」メソッドの実行に割り当てられた 60 秒後、SMF はコントラクトがまだ有効であることを確認し、コントラクト全体を強制終了する以外に選択肢がありませんでした。「停止」メソッドが機能しないと正当に想定していました。したがって、ログに最後のメッセージが表示され、コントラクトが強制終了された後、サービスはメンテナンス モードになります。

お役に立てれば!

于 2012-09-18T02:46:30.880 に答える