cmd := exec.Command("lsof", "/tmp/lb_proxy.sock")
var out, outErr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &outErr
if err := cmd.Run(); err != nil {
fmt.Println("command runtime error: ", err)
}
fmt.Println(out.String(), outErr.String())
每次/tmp/lb_proxy.sock存在但未被任何进程打开时,代码都会打印出来:
command runtime error: exit status 1
但是当套接字被其他进程使用时,代码运行顺利:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
proxy 24972 root 7u unix 0xffff880008fc2000 0t0 705433 /tmp/lb_proxy.sock
任何人都可以告诉为什么这件事变得如此奇怪?