私は、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' />