探索 PID 为 1 的进程
【摘要】 查看 PID 为 1 的进程的命令名ps -p 1 -o comm=解释部分含义ps进程状态查看命令-p 1指定只看 PID 为 1 的进程-o comm=自定义输出格式,只输出 comm 列(命令名)=等号表示去掉表头,只输出值本身典型输出$ ps -p 1 -o comm=systemd其他常见结果:systemd — 大多数现代 Linux 发行版init — 老式 SysV ini...
查看 PID 为 1 的进程的命令名
ps -p 1 -o comm=
解释
| 部分 | 含义 |
|---|---|
ps |
进程状态查看命令 |
-p 1 |
指定只看 PID 为 1 的进程 |
-o comm= |
自定义输出格式,只输出 comm 列(命令名) |
= |
等号表示去掉表头,只输出值本身 |
典型输出
$ ps -p 1 -o comm=
systemd
其他常见结果:
systemd— 大多数现代 Linux 发行版init— 老式 SysV init 系统bash— 容器里(比如 Docker 容器通常以某个命令作为 PID 1)sh— 精简容器launchd— macOS(但 macOS 的ps参数略有不同)tini/dumb-init— 容器中常用的 init 进程
用途
常用于判断系统类型或运行环境,尤其是:
-
判断是否运行在容器里
if [ "$(ps -p 1 -o comm=)" = "systemd" ]; then echo "宿主机 / 传统系统" else echo "可能是容器" fi -
判断 init 系统,决定用
systemctl还是service管理服务。
补充说明
comm只显示命令名(不含路径和参数),最长 15 个字符(受内核TASK_COMM_LEN限制)。- 如果想看完整命令行,用
ps -p 1 -o args=或ps -p 1 -o cmd=。 - 在 macOS 上,
ps -p 1 -o comm=输出的是完整路径,行为略有不同。
这条命令和 command -v ... 组合起来,通常是环境探测脚本里用来判断"这是什么系统、装了什么工具"的常见写法。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)