如何定位特定进程的 unix 套接字

How to locate the unix socket of a particular process

对于本地 MySQL 连接,我如何找到位置连接的 unix 套接字号?我不相信它在 ps 命令中:

USER           PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
_mysql         141   0.0  0.0 34786180   3284   ??  Ss    6Jan22  16:21.85 /usr/local/mysql/bin/mysqld...

有没有更简单的方法找到它?

这是查看打开给定文件的进程的示例:

$ lsof /tmp/mysql.sock

COMMAND PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  829 bkarwin   21u  unix 0x1c2b10907d83adad      0t0      /tmp/mysql.sock

或者反其道而行之,列出进程 ID mysqld:

所有打开的文件
$ lsof -p 829

COMMAND PID    USER   FD     TYPE             DEVICE  SIZE/OFF                NODE NAME
...
mysqld  829 bkarwin   21u    unix 0x1c2b10907d83adad       0t0                     /tmp/mysql.sock
...

如果您不知道进程 ID,可以让 lsof 搜索其命令以给定字符串开头的进程:

$ lsof -c mysqld
(same output as for -p)

阅读 https://ss64.com/osx/lsof.html 了解更多用法。