V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
interdev
V2EX  ›  macOS

osx 下如何查端口对应的 tcp/udp 进程?

  •  
  •   interdev · 2015-02-08 10:27:58 +08:00 · 3153 次点击
    这是一个创建于 3364 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚启动了tftpd ,通过 netstat -ap udp 能查到端口开了,通过 ps 确查不到进程启动了?请问osx下如何查端口对应的tcp/udp进程?

    osx4:test jeff$ netstat -ap udp | grep tftp
    udp6 0 0 *.tftp *.*
    udp4 0 0 *.tftp *.*
    osx4:test jeff$ ps aux | grep tftp
    jeff 670 0.0 0.0 2432772 640 s000 S+ 10:25上午 0:00.00 grep tftp
    osx4:test jeff$ ls /usr/libexec/tftpd
    /usr/libexec/tftpd
    5 条回复    2015-02-08 11:37:36 +08:00
    auser
        1
    auser  
       2015-02-08 10:30:21 +08:00 via Android
    man lsof
    interdev
        2
    interdev  
    OP
       2015-02-08 10:43:20 +08:00
    谢谢,@auser ,lsof 刚开始也没查到,后来一想可能是权限问题,以root运行就能查到了, 不知道我这样理解对不对, tftpd 是以1号进程launchd的子进程方式在运行,有root权限,能访问所有文件。

    sh-3.2# lsof -ni | grep tftp
    launchd 1 root 48u IPv4 0x2f0d2aae9fd6e1e3 0t0 UDP *:tftp
    launchd 1 root 50u IPv4 0x2f0d2aae9fd6e1e3 0t0 UDP *:tftp
    launchd 1 root 51u IPv6 0x2f0d2aae9fd6df8b 0t0 UDP *:tftp
    launchd 1 root 52u IPv6 0x2f0d2aae9fd6df8b 0t0 UDP *:tftp
    lululau
        3
    lululau  
       2015-02-08 11:15:59 +08:00
    lsof -i:port
    ptyfork
        4
    ptyfork  
       2015-02-08 11:25:31 +08:00   ❤️ 1
    launchd这个功能是跟xinetd原理差不多的, launchd启动侦听在tftp端口,此时tfptd实际没有启动, 等有客户端请求时,launchd接受请求后fork出tftpd子进程把网络连接分发给子进程完成服务请求。
    interdev
        5
    interdev  
    OP
       2015-02-08 11:37:36 +08:00
    @ptyfork 谢谢,原来是以超级守护进程方式在运行,类似于windows的 svchost.exe了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1143 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:58 · PVG 06:58 · LAX 15:58 · JFK 18:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.