如何告诉SMF一个服务真的在线?

这看起来微不足道,但是我在Solaris 10中运行了一个服务,但是SMF认为它不是。

通过停止然后启动服务,我可能会让SMF获得正确的状态,但在这种情况下,服务是SSH,这意味着我必须在系统控制台重新启动它。

我怎么能告诉SMF:“这个服务真的在运行,请把它移到'在线'状态?


编辑 :有关ssh服务请求的一些信息:

/usr/lib/ssh/sshd -d | head -1 /usr/lib/ssh/sshd -d | head -1

 debug1: sshd version Sun_SSH_1.1 

ptree `pgrep sshd`的输出:

 453 /usr/lib/ssh/sshd 11456 /usr/lib/ssh/sshd 11459 /usr/lib/ssh/sshd 11461 -tcsh 20521 /usr/lib/ssh/sshd 20524 /usr/lib/ssh/sshd 20526 -tcsh 22145 ptree 11459 20521 11456 20524 453 

pargs -e `pgrep sshd`的输出:

 11459: /usr/lib/ssh/sshd envp[0]: EDITOR=vi envp[1]: GROUP=wheel envp[2]: HOME=/home/philadm envp[3]: HOST=radiance envp[4]: HOSTTYPE=sun4 envp[5]: LANG=en_US.UTF-8 envp[6]: LD_LIBRARY_PATH=/opt/csw/lib/$ISALIST:/usr/local/lib:/usr/lib:/usr/dt/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.4.2/lib envp[7]: LOGNAME=philadm envp[8]: MACHTYPE=sparc envp[9]: MAIL=/var/mail//philadm envp[10]: MANPATH=/opt/csw/share/man:/usr/local/man:/usr/man:/storage/lang/man:/usr/local/ssl/man envp[11]: OSTYPE=solaris envp[12]: PATH=/bin:/sbin:/usr/sbin:/opt/csw/bin:/usr/bin:/usr/local/bin:/usr/dt/bin:/usr/bin/nsr:/usr/sbin/nsr:/opt/hpnpl/bin:/usr/openwin/bin:/usr/sbin:/usr/bin envp[13]: PWD=/var/log envp[14]: REMOTEHOST=bastion2.example.com envp[15]: SHELL=/bin/tcsh envp[16]: SHLVL=1 envp[17]: SSH_CLIENT=192.168.1.45 45010 22 envp[18]: SSH_CONNECTION=192.168.1.45 45010 192.168.1.5 22 envp[19]: SSH_TTY=/dev/pts/2 envp[20]: TERM=xterm envp[21]: TZ=US/Eastern envp[22]: USER=philadm envp[23]: VENDOR=sun 20521: /usr/lib/ssh/sshd envp[0]: EDITOR=vi envp[1]: GROUP=wheel envp[2]: HOME=/home/philadm envp[3]: HOST=radiance envp[4]: HOSTTYPE=sun4 envp[5]: LANG=en_US.UTF-8 envp[6]: LD_LIBRARY_PATH=/opt/csw/lib/$ISALIST:/usr/local/lib:/usr/lib:/usr/dt/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.4.2/lib envp[7]: LOGNAME=philadm envp[8]: MACHTYPE=sparc envp[9]: MAIL=/var/mail//philadm envp[10]: MANPATH=/opt/csw/share/man:/usr/local/man:/usr/man:/storage/lang/man:/usr/local/ssl/man envp[11]: OSTYPE=solaris envp[12]: PATH=/bin:/sbin:/usr/sbin:/opt/csw/bin:/usr/bin:/usr/local/bin:/usr/dt/bin:/usr/bin/nsr:/usr/sbin/nsr:/opt/hpnpl/bin:/usr/openwin/bin:/usr/sbin:/usr/bin envp[13]: PWD=/var/log envp[14]: REMOTEHOST=bastion2.example.com envp[15]: SHELL=/bin/tcsh envp[16]: SHLVL=1 envp[17]: SSH_CLIENT=192.168.1.45 45010 22 envp[18]: SSH_CONNECTION=192.168.1.45 45010 192.168.1.5 22 envp[19]: SSH_TTY=/dev/pts/2 envp[20]: TERM=xterm envp[21]: TZ=US/Eastern envp[22]: USER=philadm envp[23]: VENDOR=sun 11456: /usr/lib/ssh/sshd envp[0]: EDITOR=vi envp[1]: GROUP=wheel envp[2]: HOME=/home/philadm envp[3]: HOST=radiance envp[4]: HOSTTYPE=sun4 envp[5]: LANG=en_US.UTF-8 envp[6]: LD_LIBRARY_PATH=/opt/csw/lib/$ISALIST:/usr/local/lib:/usr/lib:/usr/dt/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.4.2/lib envp[7]: LOGNAME=philadm envp[8]: MACHTYPE=sparc envp[9]: MAIL=/var/mail//philadm envp[10]: MANPATH=/opt/csw/share/man:/usr/local/man:/usr/man:/storage/lang/man:/usr/local/ssl/man envp[11]: OSTYPE=solaris envp[12]: PATH=/bin:/sbin:/usr/sbin:/opt/csw/bin:/usr/bin:/usr/local/bin:/usr/dt/bin:/usr/bin/nsr:/usr/sbin/nsr:/opt/hpnpl/bin:/usr/openwin/bin:/usr/sbin:/usr/bin envp[13]: PWD=/var/log envp[14]: REMOTEHOST=bastion2.example.com envp[15]: SHELL=/bin/tcsh envp[16]: SHLVL=1 envp[17]: SSH_CLIENT=192.168.1.45 45010 22 envp[18]: SSH_CONNECTION=192.168.1.45 45010 192.168.1.5 22 envp[19]: SSH_TTY=/dev/pts/2 envp[20]: TERM=xterm envp[21]: TZ=US/Eastern envp[22]: USER=philadm envp[23]: VENDOR=sun 20524: /usr/lib/ssh/sshd envp[0]: EDITOR=vi envp[1]: GROUP=philadm envp[2]: HOME=/home/philadm envp[3]: HOST=radiance envp[4]: HOSTTYPE=sun4 envp[5]: LANG=en_US.UTF-8 envp[6]: LD_LIBRARY_PATH=/opt/csw/lib/$ISALIST:/usr/local/lib:/usr/lib:/usr/dt/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.4.2/lib envp[7]: LOGNAME=philadm envp[8]: MACHTYPE=sparc envp[9]: MAIL=/var/mail//philadm envp[10]: MANPATH=/opt/csw/share/man:/usr/local/man:/usr/man:/storage/lang/man:/usr/local/ssl/man envp[11]: OSTYPE=solaris envp[12]: PATH=/bin:/sbin:/usr/sbin:/opt/csw/bin:/usr/bin:/usr/local/bin:/usr/dt/bin:/usr/bin/nsr:/usr/sbin/nsr:/opt/hpnpl/bin:/usr/openwin/bin:/usr/sbin:/usr/bin envp[13]: PWD=/var/log envp[14]: REMOTEHOST=bastion2.example.com envp[15]: SHELL=/bin/tcsh envp[16]: SHLVL=1 envp[17]: SSH_CLIENT=192.168.1.45 45010 22 envp[18]: SSH_CONNECTION=192.168.1.45 45010 192.168.1.5 22 envp[19]: SSH_TTY=/dev/pts/2 envp[20]: TERM=xterm envp[21]: TZ=US/Eastern envp[22]: USER=steveadm envp[23]: VENDOR=sun 453: /usr/lib/ssh/sshd envp[0]: EDITOR=vi envp[1]: GROUP=wheel envp[2]: HOME=/home/philadm envp[3]: HOST=radiance envp[4]: HOSTTYPE=sun4 envp[5]: LANG=en_US.UTF-8 envp[6]: LD_LIBRARY_PATH=/opt/csw/lib/$ISALIST:/usr/local/lib:/usr/lib:/usr/dt/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.4.2/lib envp[7]: LOGNAME=philadm envp[8]: MACHTYPE=sparc envp[9]: MAIL=/var/mail//philadm envp[10]: MANPATH=/opt/csw/share/man:/usr/local/man:/usr/man:/storage/lang/man:/usr/local/ssl/man envp[11]: OSTYPE=solaris envp[12]: PATH=/bin:/sbin:/usr/sbin:/opt/csw/bin:/usr/bin:/usr/local/bin:/usr/dt/bin:/usr/bin/nsr:/usr/sbin/nsr:/opt/hpnpl/bin:/usr/openwin/bin:/usr/sbin:/usr/bin envp[13]: PWD=/var/log envp[14]: REMOTEHOST=cbastion2.example.com envp[15]: SHELL=/bin/tcsh envp[16]: SHLVL=1 envp[17]: SSH_CLIENT=192.168.1.45 45010 22 envp[18]: SSH_CONNECTION=192.168.1.45 45010 192.168.1.5 22 envp[19]: SSH_TTY=/dev/pts/2 envp[20]: TERM=xterm envp[21]: TZ=US/Eastern envp[22]: USER=philadm envp[23]: VENDOR=sun 

如果您的服务处于维护模式,则可能只需运行:

 svcadm clear service 

也许:

 svcadm refresh service 

如果该服务被报告为脱机,但实际上可用,您应该进一步调查,以了解为什么smf认为不然。 首先查看服务日志(查看以下命令输出以了解它们的位置):

 svcs -xv service 

编辑:问题是正在运行的主要sshd (pid 453)尚未由smf启动,但由philadm启动,更不用说不支持的环境。 无论如何,smf不能“采用”这个sshd。 你可以杀死它( kill 453 ),smf应该能够启动ssh服务。 这两个当前的SSH连接不应该受到这个杀死的影响。