要查找 Linux 进程的进程 ID,请使用 pidof 命令,如下所示:“pidof examplename”。 如果您只知道 PID 名称的一部分,则可以改用“pgrep examplenamefragment”。 将“examplename”和“examplenamefragment”替换为您要搜索的术语。
使用 Linux 进程通常意味着了解其进程 ID 或 PID。 它是分配给每个正在运行的软件的唯一编号。 这里有两种方法可以找出它是什么。
目录
相关参考:Linux 按名称、用户、PID 列出所有进程 怎样在 Linux 中查找进程的 PID 和 PPID
什么是 Linux 进程 ID?
在内部,Linux 通过为它们分配一个唯一的 ID 号(称为进程 ID 或 PID)来跟踪其运行的进程。 每个正在运行的应用程序、实用程序和守护进程都有一个 PID。
PID 是简单的整数值。 新启动的进程将收到一个比上一个发出的 PID 高的 PID。 因此,具有最高 PID 的进程是最新的(即最近启动的)进程。 这一直持续到系统达到 PID 的最大值为止。
PID 的上限是 32768。一旦达到这个数字,Linux 就会回到开始并寻找一个已经空闲的 PID,因为之前拥有它的进程已经终止。
PID 为 1 的进程是启动进程启动 Linux 时启动的第一个进程。 在基于 systemd 的系统上 systemd . 在其他系统上很可能是 init,尽管一些 Linux 发行版使用替代方案linux 获取进程pid,例如 打开Rc 或者 s6.
有时发现进程的 PID 很有用,通常是因为您想对该进程执行某些操作。 当您知道进程的名称时,这里有两种不同的方法来查找进程的 PID。
什么是 Unix PID 以及它们怎样工作?
怎样使用 pidof 命令获取 Linux PID
这 pidof 命令可以被认为是“PID”和“of”的组合。 就好比问这个进程的PID是多少? 如果我们使用不带参数的命令中国linux,它不会执行任何操作。 它会自动将您返回到命令提示符。 我们需要指定一个进程名称。
pidof bash
pidof 告诉我们 Bash shell 的 PID 是 8304。我们可以用 ps 命令。 我们需要做的就是打电话 ps 没有参数。 它将报告当前会话中正在运行的进程。
ps
因为 ps 报告它能找到的所有进程,包括它自己,它告诉我们有一个 bash 过程和一个 ps 进程运行。 正如我们所料, bash 进程具有相同的 PID pidof 报道了。
如果您打开了多个终端窗口, pidof 将报告所有这些。
pidof bash
请注意,PID 是从最高到最低列出的,换句话说,从最近到最旧。
这没有表明您可能不是所有这些流程的所有者。 pidof 查找具有匹配名称的所有进程,无论谁拥有它们。 让我们通过将输出输送到 grep. 我们正在使用 -e (选择所有进程)和 -f (完整列表)选项 ps .
ps -ef | grep bash
两个 bash 进程属于用户 dave,第三个进程属于用户 mary。
有时一个应用程序会生成很多进程,每个进程都会收到自己的 PID。 这就是我们得到的 Google Chrome.
pidof chrome
为什么 Chrome 有这么多打开的进程?
默认, pidof 报告所有过程。 如果需要,我们可以只请求这些进程中的最新进程。 这 -s (单发)选项就是这样做的。
pidof -s chrome
使用 kill 命令手动杀死所有的 chrome 过程会很乏味。 如果我们将进程列表捕获到一个变量中中标麒麟linux,我们可以将该变量传递给 kill 命令。 这 kill 命令可以在其命令上接受多个 PID,因此它很乐意接受我们的输入并为我们终止所有进程。
pid=$(pidof chrome)
echo $pid
kill $pid
pidof chrome
第一个命令收集来自 pidof 并将其分配给我们正在命名的变量 pid. 我们不需要 echo 它到屏幕上,我们这样做只是为了显示我们的变量所包含的内容。
我们将变量传递给 kill 命令,然后使用 pidof 再次检查是否有 Chrome 过程仍然存在。 他们都被杀了。
一个怪癖 pidof 是它不会返回 shell 脚本的 PID。 它返回的 PID bash 运行脚本的 shell。 要查看正在运行脚本的 shell,我们需要使用 -x (脚本)选项。
pidof -x sleep-loop.sh
ps -e | grep bash
pidof 返回一个的PID bash 外壳,和 ps 向我们展示了有两个 shell 正在运行。 一个是运行的shell pidof 命令,另一个是运行脚本的shell。
怎样在 Linux 上使用 grep 命令
怎样在 Linux 中使用 pgrep 命令查找 PID
这 pgrep 命令有点像 pidof 在 Linux 中获取进程 ID。 但是,它不仅会找到与搜索线索完全匹配的进程,还会返回名称中包含搜索文本的所有进程的 PID。
这是一个 example 在一台有 Firefox 在上面运行。
pgrep firefox
pgrep fire
pgrep fox
pgrep refo
所有这些命令都找到了 Firefox 处理并返回 PID。 但是如果你输入了命令:
pgrep refo
就其本身而言,您怎样知道 pgrep 是否找到了 Fi参考资料x 而不是linux 获取进程pid,比方说,一个叫 p 的精灵改革医学博士?
如果你添加 -l (list name) 选项,pgrep 将在 PID 旁边列出进程名称。
pgrep refo -l
如果一个匹配过程有多个实例,它们都会被列出。
pgrep bash
请注意,它们按升序排列,这与输出的顺序相反 pidof. 它们从最旧的进程到最新的进程列出。 正如我们看到的 pidof,并非所有列出的流程都一定属于您。
这 -u (user id) 选项允许您搜索与搜索文本匹配并由指定用户拥有的进程。
pgrep bash -u dave
这次我们看到三个 bash 结果中的过程。 另一个正在被使用 mary.
pgrep bash -u mary
我们可以将用户名串在一起作为逗号分隔的列表。
pgrep bash -u dave,mary -l
我们可以要求查看特定用户的所有进程。
pgrep -u dave -l
要查看完整的命令行,请使用 -a (完整列表)选项。
pgrep -u dave -a
一个 Word 关于 PID 所有权
并非所有系统进程都由 root 用户拥有。 当然有很多,但不是全部。 为了 example,此命令有效:
pgrep avahi-daemon
但是这个命令失败了。
pgrep -u root avahi-daemon
它失败了,因为 root 不拥有该过程。 实际所有者是名为“avahi”的系统用户。 使用正确的用户名,该命令有效。
pgrep -u avahi avahi-daemon
这是一个需要注意的小陷阱。
Linux 命令
文件
柏油 · 光伏 · 猫 · 战术 · 修改 · grep · 差异 · sed · ar · 男人 · 推送 · 弹出窗口 · fsck · 测试盘 · 序号 · fd · 潘多克 · 光盘 · $路径 · awk · 加入 · jq · 折叠 · 独特的 · journalctl · 尾巴 · 统计 · ls · 稳定表 · 回声 · 较少的 · chgrp · chown · 转速 · 看 · 字符串 · 类型 · 改名 · 压缩 · 解压缩 · 山 · 卸载 · 安装 · 磁盘 · mkfs · R M · 目录 · 同步 · 去向 · gpg · 六 · 纳米 · mkdir · 杜 · 在 · 修补 · 兑换 · 克隆 · 撕碎 · srm
进程
别名 · 屏幕 · 最佳 · 好的 · 尼斯 · 进步 · 跟踪 · 系统 · 多路复用器 · chsh · 历史 · 在 · 批 · 自由的 · 哪个 · dmesg · 瑞士法郎 · 用户模组 · 附言 · chroot · xargs · tty · 小指 · lsof · 虚拟机统计 · 暂停 · 墙 · 是的 · 杀 · 睡觉 · sudo · 苏 · 时间 · 群组地址 · 用户模组 · 团体 · lshw · 关闭 · 重启 · 停 · 关机 · 密码 · lscpu · 定时任务表 · 日期 · 背景 · fg
联网
网络统计 · 平 · 追踪路线 · ip · SS · 谁是 · fail2ban · bmon · 挖 · 手指 · 地图 · FTP · curl · wget · 谁 · 我是谁 · w · iptables · ssh-keygen · ufw
最适合开发人员和爱好者的 Linux 笔记本电脑