Solaris svcs 命令显示错误状态

Solaris svcs command shows wrong status

我刚刚在 solaris 5.10 上安装了一个应用程序。当通过 ps -ef | grep hyperic | grep agent 检查时,进程启动并且 运行 。通过 svcs hyperic-agent 命令检查状态时,输出显示代理处于维护模式。应用程序工作正常,我对应用程序没有任何问题。请帮助

导致这种行为的原因有多种:

  • Starter(start/exec 属性 服务)返回的状态不同于 SMF_EXIT_OK(零)。你可以检查日志:

     # svcs -x ssh
     ...
     See: /var/svc/log/network-ssh:default.log
    

    如果您查看日志,您可能会看到以下消息,这意味着启动脚本失败或编写不正确:

     [ Aug 11 18:40:30 Method "start" exited with status 96 ]
    
  • 这种行为的另一个原因是服务在其工作期间出现故障(即进程之一核心转储或接收终止信号或所有进程退出),如下所述:https://blogs.oracle.com/lianep/entry/smf_5_fault_retry_models

    为监视提供 SMF 设施的实际系统是系统合同。您可以使用 svcs -v(字段 CTID)确定 在线 服务的合同 ID:

    # svcs -vp svc:/network/smtp:sendmail
    STATE          NSTATE        STIME    CTID   FMRI
    online         -             Apr_14       68 svc:/network/smtp:sendmail
                Apr_14       1679 sendmail
                Apr_14       1681 sendmail
    

    比起用 ctwatch 观看赛事:

    # ctwatch 68
    CTID    EVID    CRIT ACK CTTYPE   SUMMARY
    68      28      crit no  process  contract empty
    

    有两个选项可以解决这个问题:

    • 服务确实存在问题,因此最终出现故障。比调试应用程序。

    • 这是服务的正常行为,因此您应该编辑并重新导入您的服务清单,以减少 SMF 的偏执。 IE。配置 ignore_errorduration 属性。