Solaris
Solaris SMF 服務 - 方法“start”以狀態 96 退出
嗨,我正在嘗試在伺服器重新啟動時啟動新服務,但在啟動時出現此錯誤:“方法“啟動”以狀態 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
。