Solaris SMF服务 – 使用状态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时查看发生了什么。

问题原来是我的服务太早,不能在其他服务之前启动。 为了解决这个问题,我添加了最后一个服务的依赖关系 – 这可能是,例如,rlogin,ssh等等。

以下是我在.xml中添加的代码:

 <dependency name='login' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/login:rlogin' />