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 模式则通常看不到。

相关推荐
Liu628881 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
烟花巷子10 分钟前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
不是株20 分钟前
Redis(入门篇)
数据库·redis·缓存
2401_8732046520 分钟前
Python面向对象编程(OOP)终极指南
jvm·数据库·python
0xDevNull27 分钟前
MySQL 三大日志系统深度解析:Binlog、Redo Log、Undo Log
数据库·mysql
逃逸线LOF30 分钟前
数据源 C3PO与Druid
数据库·oracle
m0_5698814743 分钟前
使用Python进行网络设备自动配置
jvm·数据库·python
Zzxy1 小时前
HikariCP连接池
java·数据库
钰衡大师1 小时前
MySQL 数据库备份方案
数据库·mysql
殷紫川1 小时前
别等业务中断才补坑!RTO/RPO 核心逻辑与全场景灾备架构选型全攻略
数据库·架构