在 Ubuntu 16 上,Grafana 进程本身 就是"被启动"的最终实体;
真正需要搞清楚的是:
谁把 grafana-server 拉起来的?
是 systemd?upstart?docker?还是某个手动脚本?
下面给出按优先级排查 的 4 条命令,依次执行即可定位"启动者"。
- 先看 systemd(Ubuntu 16 默认还用 systemd)
bash
systemctl status grafana-server
- 若输出里
Active: active (running)
且Main PID
等于你看到的那个进程号 → systemd 启动的。 - 若提示
Unit grafana-server.service could not be found.
→ 继续下一步。
- 检查是不是 SysV / Upstart 脚本
bash
initctl status grafana-server # Upstart
service grafana-server status # SysV 兼容
有返回且状态为 start/running
→ Upstart 启动 。
仍找不到 → 继续。
- 看父进程是谁(排除 docker / 手动)
bash
ps -ef | grep grafana
记下 PID,再查父 PID
bash
ps -p <PID> -o ppid= | xargs -I{} ps -p {} -o pid,cmd
常见结果对照
父进程 cmd | 含义 |
---|---|
/sbin/init 或 /lib/systemd/systemd |
systemd / Upstart |
docker-containe |
运行在容器里,父进程是 dockerd |
sudo 、bash 、./start.sh |
手工启动 |
- 如果父进程是 dockerd → 进容器确认
bash
docker ps | grep grafana
docker inspect --format '{{.Name}} {{.Config.Image}}' <container-id>
即可知道是哪个镜像、哪条 docker run
命令拉起的。
一句话总结
按 systemctl → initctl → ps 找父进程 → docker ps
四步 ,
30 秒内就能判定 Grafana 到底是 systemd 服务 、Upstart 任务 、docker 容器 还是手工脚本启动的。