AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 13534
Accepted
grigoryvp
grigoryvp
Asked: 2009-05-28 22:01:34 +0800 CST2009-05-28 22:01:34 +0800 CST 2009-05-28 22:01:34 +0800 CST

如何在 MacOS 中从 PID 获取进程文件名?

  • 772

是否可以使用 PID 获取进程的文件名?ps 显示有关进程的许多有用信息,但不显示有关进程可执行文件位置的提示。

mac-osx process pid
  • 5 5 个回答
  • 32017 Views

5 个回答

  • Voted
  1. Best Answer
    Blair Zajac
    2009-05-28T22:13:53+08:002009-05-28T22:13:53+08:00

    获取进程二进制位置的一种方法是使用lsofandgrep用于txt第一段。例如,在 shell 中查看 shell 是什么二进制文件,使用 shell 的 PID 代替$$.

    $ lsof -p $$ | grep txt
    bash    78228 blair  txt    REG   14,2   1244928   6568359 /bin/bash
    bash    78228 blair  txt    REG   14,2   1059792  23699809 /usr/lib/dyld
    bash    78228 blair  txt    REG   14,2 136368128  81751398 /private/var/db/dyld/dyld_shared_cache_i386
    

    您可以看到 shell 正在使用/bin/bash.

    如果使用绝对或相对路径启动进程,则此技术有效。例如,进入一个 shell 并运行

    $ sleep 1234567
    

    在另一个 shell 中使用ps仅显示它是如何启动的:

    $ ps auxww|grep '[s]leep'
    blair    79462   0.0  0.0   600908    744 s011  S+   11:17PM   0:00.00 sleep 1234567
    

    usinglsof显示它运行的是哪个二进制文件:

    $ lsof -p 79462 | awk '$4 == "txt" { print $9 }'
    /opt/local-development/bin/gsleep
    

    我安装了 MacPorts coreutils +with_default_names,这说明我选择了gsleep而不是/bin/sleep.

    • 16
  2. HappySpaceInvader
    2009-05-28T23:27:54+08:002009-05-28T23:27:54+08:00

    ps -ef 和 grep 对我有用。对于特定的文件名,只需通过 grep 管道即可:

    MacBook:~ Me$ ps -ef | grep Safari | grep -v grep
      501 15733   301   0   0:25.76 ??         1:58.24 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_4977855
    

    (最后的 'grep -v grep' 只会阻止你在输出中获得自己的 grep 命令)

    • 3
  3. Xerxes
    2009-05-28T22:13:44+08:002009-05-28T22:13:44+08:00

    示例:您在PID 45109...的关联进程命令名称之后

    >    % ps awx | awk '$1 == 45109 { print $5 }'
    >    /Applications/Safari.app/Contents/MacOS/Safari
    
    • 2
  4. Jason Tan
    2009-05-30T08:30:04+08:002009-05-30T08:30:04+08:00

    ps -p <pid> -Ocommand

    L1A1:~ a1155344$ ps -p1 -Ocommand
      PID   TT  STAT      TIME COMMAND
        1   ??  Ss     0:02.26 /sbin/launchd
    
    • 2
  5. vu1tur
    2009-05-28T22:13:29+08:002009-05-28T22:13:29+08:00

    试试ps辅助

    • 1

相关问题

  • 我需要对 MacOSX 文件系统进行碎片整理吗?

  • 如何让 Time Machine 与我的计算机重新关联?[关闭]

  • 多操作系统环境的首选电子邮件客户端

  • 现在从 mac os 在 NTFS 分区上写入是否安全?

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve