ps -ef | grep redis

ps -ef | grep redis 这行命令几乎是 Linux 运维排查 Redis 是否启动、启动参数是什么时最先敲的一条指令。

拆开来看只有两步,但每一步都有细节值得掌握。


  1. ps -ef ------ 把"所有进程的长格式信息"一次性列出来

  • ps:process status,查看进程快照。
  • -e:every,选中所有进程(等效于 -A)。
  • -f:full-format,显示长格式 ,比默认多以下几列:
    UID 启动该进程的用户
    PID 进程号
    PPID 父进程号
    C CPU 占用百分比
    STIME 启动日期(或时间)
    TTY 关联终端(? 表示后台)
    TIME 累计 CPU 时间
    CMD 启动命令的完整字符串(含参数)

示例(CentOS 8):

UID PID PPID C STIME TTY TIME CMD

redis 1234 1 0 09:30 ? 00:00:10 /usr/bin/redis-server *:6379

root 5678 5432 0 10:00 pts/0 00:00:00 grep --color=auto redis


  1. | grep redis ------ 用管道 + 文本过滤留下含"redis"的行

  • |:管道,把 ps 的标准输出接到 grep 的标准输入。
  • grep redis:只保留包含字符串 redis 的行(大小写敏感)。
  • 副作用:grep 自身也会带"redis"关键字,所以常出现两条,其中一条就是 grep 本身。

  1. 常见变种与技巧

  1. 去掉 grep 自身
    ps -ef | grep redis | grep -v grep # -v 表示反向匹配
  2. 精确匹配命令名,避免把"redis.log"这类文件名也扫出来
    ps -ef | grep '[r]edis' # 利用正则把 r 拆到 [] 里,grep 自身不再匹配
  3. 只想看 PID
    pgrep -f redis # 直接返回 PID 列表,脚本里更方便
  4. 树状看父子关系
    ps -ef --forest | grep -C3 redis
  5. 结合 systemd
    systemctl status redis # 若用 rpm/deb 包装的服务,首推 systemd 查看

  1. 在 Docker host 网络模式下的差异

默认 bridge 模式时,Redis 进程在容器 PID 命名空间里,宿主机 ps 只能看到 docker-containerd-shim 等中间层;

host 模式时容器与宿主机共用 PID 命名空间,因此在宿主机执行 ps -ef | grep redis 直接就能看到 redis-server 进程,启动参数、监听端口一目了然------这就是你引用那句话里"能直接在宿主机通过 ps 命令查看到 Redis 进程"的原因。


  1. 一句话总结

ps -ef | grep redis 就是"列出所有进程,再筛选出含 redis 字样的行",用来快速确认 Redis 是否已启动、启动用户、PID、完整命令行参数;在 Docker host 网络模式下,宿主机能直接看到 redis-server 进程,而 bridge 模式则通常看不到。

相关推荐
陈天伟教授1 天前
人工智能训练师认证教程(2)Python os入门教程
前端·数据库·python
Elastic 中国社区官方博客1 天前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
聪明努力的积极向上1 天前
【MYSQL】字符串拼接和参数化sql语句区别
数据库·sql·mysql
代码or搬砖1 天前
RBAC(权限认证)小例子
java·数据库·spring boot
神仙别闹1 天前
基于QT(C++)实现学本科教务系统(URP系统)
数据库·c++·qt
2301_768350231 天前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql
上海蓝色星球1 天前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库
是大芒果1 天前
数据库表设计
数据库
哥哥还在IT中1 天前
MySQL order by 如何优化
数据库·mysql
积跬步,慕至千里1 天前
postgre数据库大批量快速导出方法总结
数据库·postgres