嗨我试图启动服务器重新启动一个新的服务,我得到这个错误开始:“方法”开始“退出状态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' />