Solaris

Solaris SMF 服務 - 方法“start”以狀態 96 退出

  • February 4, 2015

嗨,我正在嘗試在伺服器重新啟動時啟動新服務,但在啟動時出現此錯誤:“方法“啟動”以狀態 96 退出”。我的服務也處於“維護”狀態。

當我禁用/啟用它時,我的服務正在工作,但當我重新啟動時(這是目標)。

我用Google搜尋了以下錯誤,但無法弄清楚問題所在:

錯誤日誌:

svc.startd could not set context for method: chdir: Ce fichier ou ce répertoire n'existe pas

Method "start" exited with status 96 

我的.xml:

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type='manifest' name='broker2'>

<service
   name="application/broker2"
   type="service"
   version="1">
<instance name='default' enabled='true'>

   <exec_method
         type='method'
         name='start'
         exec='/lib/svc/method/svc-broker start'
         timeout_seconds='30' >

       <method_context working_directory='/users/adm0ardp'>
           <method_credential user='adm0ardp' group='gpm0ardp' />
       </method_context>
   </exec_method>

   <exec_method
          type='method'
          name='stop'
          exec='/lib/svc/method/svc-broker stop'
          timeout_seconds='3' >

       <method_context working_directory='/users/adm0ardp'>
           <method_credential user='adm0ardp' group='gpm0ardp' />
       </method_context>
    </exec_method>

</instance>             

</service>
</service_bundle>

和我的腳本:

#!/usr/bin/sh

. /lib/svc/share/smf_include.sh

case "$1" in
 start) script_path.ksh 
;;
 stop) script_path.ksh   
;;

esac 
exit 0

任何幫助都可能很棒。

該錯誤表明 cd/chdir 失敗。使用者 adm0ardp 是否正確指定(和拼寫)並能夠 cd 進入 /users/adm0ardp?

/users指向其他地方的符號連結嗎?目錄是否/users自動掛載?自身的權限是否/users會阻止使用者adm0ardp看到/users/adm0ardp?錯誤消息確實表明該目錄不存在。我會使用 truss 或 dtrace 並觀察svc.startd程序,看看執行時發生了什麼svcadm enable

引用自:https://serverfault.com/questions/392659