一、Ambari自定义服务启动成功后,依旧显示停止状态的解决方案
1、概述
如果遇到该情况,首先前往 /var/log/ambari-agent/ambari-agent.log 查看日志输出。
**服务安装后,ambari 2.6 大约每隔 60s 会执行 status() 方法,ambari 2.7 大约每隔 20s 会执行 status() 方法。**如果执行 status() 方法的过程中报错,则在 Ambari 页面上会显示服务已停止。如果执行 status() 方法的过程中没报错,则在 Ambari 页面上显示服务正常。
通常在 status() 方法中,我们会使用 Ambari 提供的 resource_management 模块里的 check_process_status() 来判断服务的状态。
check_process_status() 通过检测一个 pid 文件里面的进程号,来判断服务的启动状态。通常 pid 文件内只有一个进程号,如 12168 。
2、问题示例分析
2.1、报错
以自定义服务 JanusGraph 为例,status() 方法是这样写的:
fro