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 'redis' # 利用正则把 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 模式则通常看不到。

相关推荐
AI人工智能+电脑小能手36 分钟前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz39 分钟前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
键盘上的猫头鹰4 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst4 小时前
数据库知识点
数据库
雪的季节4 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s5 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)6 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick19936 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&6 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
JohnYan7 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql