当前位置: 首页 > backend >正文

守护进程导致程序kill掉后被重新拉起

ps aux | grep "supervisord"

从上面的命令可以查找到守护进程的配置文件位置:

/etc/supervisor/supervisord.conf

从配置信息看,守护进程的配置文件,又加载了/etc/supervisor/conf.d/*.conf的所有相关配置信息;

cat /etc/supervisor/conf.d/* | grep "postgrest"

cat /etc/supervisor/conf.d/* | grep "postgrest"

查询结果为空;说明不是守护进程拉起的;

查询父进程:

pstree -aps 4127561

根据你提供的 pstree -aps 4127561 输出结果,结合进程树分析原理,以下是完整的进程层级解析:

🌳 进程树结构分析

graph TDA[systemd,1] --> B[containerd-shim,4127532]B --> C[postgrest,4127561]C --> D1({postgrest线程})C --> D2({...24个子线程})
1. ​​顶层进程:systemd (PID 1)​
  • 作为所有进程的根父进程,负责系统初始化和管理服务生命周期
  • 启动参数:--system --deserialize 85 表示以系统模式启动并反序列化状态数据
2. ​​容器运行时层:containerd-shim (PID 4127532)​
  • 关键参数解析:
    • -namespace moby:使用 Docker 的默认命名空间(Moby 是 Docker 的开源组件)
    • -id7f3bb...:容器唯一 ID,对应 Docker 容器实例
  • 作用:作为容器引擎 containerd 的子进程,负责管理容器内进程的生命周期和资源隔离
3. ​​目标进程:postgrest (PID 4127561)​
  • ​进程特征​​:
    • containerd-shim 直接拉起,表明运行在 Docker 容器环境中
    • 包含 ​​24个工作线程​​(如 {postgrest},41277214127745),这是 PostgREST 的典型多线程架构
  • ​异常状态验证​​:
    若此前发现 /bin/postgrest 文件不存在但进程仍在运行,说明可执行文件已被删除(常见于容器更新或文件误删),但进程因未重启而持续占用内存

⚠️ 关键结论与建议

  1. ​进程来源​
    PostgREST 进程由 ​​Docker 容器​​(通过 containerd-shim 管理)启动,非 Systemd 或 Cron 直接调用。

  2. ​线程资源占用​
    24个工作线程表明服务处于高负载状态,需检查:

    top -p 4127561  # 实时监控该进程的CPU/内存
    cat /proc/4127561/status | grep Threads  # 确认线程数
  3. ​容器管理建议​

    • 重启容器以恢复缺失的可执行文件:
      docker ps -q | xargs docker inspect | grep 7f3bb446a666  # 根据ID查找容器
      docker restart <容器名>
    • 若需彻底清理:
      docker rm -f <容器名> && docker run -d --name postgrest postgrest/postgrest

通过此进程树可确认:​​PostgREST 是容器化部署的服务​​,任何文件变动需通过容器操作而非直接修改宿主机文件。

http://www.xdnf.cn/news/10697.html

相关文章:

  • Java集合初始化:Lists.newArrayList vs new ArrayList()
  • 线程安全 — 场景、解决、悲观锁、乐观锁
  • mysql离线安装教程
  • 计算机视觉NeRF
  • 【GESP真题解析】第 6 集 GESP 三级 2023 年 9 月编程题 1:小杨的储蓄
  • 电路图识图基础知识-高、低压供配电系统电气系统的继电自动装置(十三)
  • android binder(三)binder.c函数分析
  • 审计- 1- 审计概述
  • Python-matplotlib中的Pyplot API和面向对象 API
  • UE5 创建2D角色帧动画学习笔记
  • 网络节点排查
  • RAG系统中如何检测幻觉?
  • 【dshow】VIDEOINFOHEADER2 头文件
  • Arch安装megaton
  • PHP7+MySQL5.6 查立得轻量级公交查询系统
  • ck-editor5的研究 (5):优化-页面离开时提醒保存,顺便了解一下 Editor的生命周期 和 6大编辑器类型
  • 【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析
  • #14 学习日志
  • ②Pybullet干涉检查指令getContactPoints与 getClosestPoints介绍
  • Vue-5-基于JavaScript和plotly.js绘制数据分析类图表
  • ubuntu22.04安装megaton
  • 图像任务中的并发处理:线程池、Ray、Celery 和 asyncio 的比较
  • 经典数学教材推荐(AI相关)
  • rabbitmq Fanout交换机简介
  • 二叉查找树 —— 最近公共祖先问题解析(Leetcode 235)
  • 什么是绿电直连
  • ESP32之Linux编译环境搭建流程
  • 电脑wifi显示已禁用怎么点都无法启用
  • 浅谈量子计算:从实验室突破到产业落地的中国实践
  • Java详解LeetCode 热题 100(23):LeetCode 206. 反转链表(Reverse Linked List)详解