]> Cypherpunks repositories - gostls13.git/commitdiff
os/exec: use "pfiles" for fd debugging on illumos
authorJoshua M. Clulow <josh@sysmgr.org>
Fri, 6 Nov 2020 21:11:58 +0000 (13:11 -0800)
committerIan Lance Taylor <iant@golang.org>
Sat, 7 Nov 2020 14:23:20 +0000 (14:23 +0000)
On illumos (and Solaris) systems, the native "pfiles" tool provides the
best information about open file descriptors for a process:

    https://illumos.org/man/1/pfiles

Use that instead of "lsof" when debugging file descriptor leaks.

Updates #42431.

Change-Id: If1250c4e6c9e8adbd076495a09fb1ce63abcc68b
Reviewed-on: https://go-review.googlesource.com/c/go/+/268019
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>

src/os/exec/read3.go

index 8852023e77d5f9c823af3690e84473f43cde91a0..8cc24da8cb41ce57fe9689833f09eba231ad7e33 100644 (file)
@@ -56,7 +56,7 @@ func main() {
                        switch runtime.GOOS {
                        case "plan9":
                                args = []string{fmt.Sprintf("/proc/%d/fd", os.Getpid())}
-                       case "aix":
+                       case "aix", "solaris", "illumos":
                                args = []string{fmt.Sprint(os.Getpid())}
                        default:
                                args = []string{"-p", fmt.Sprint(os.Getpid())}
@@ -71,6 +71,8 @@ func main() {
                                ofcmd = "/bin/cat"
                        case "aix":
                                ofcmd = "procfiles"
+                       case "solaris", "illumos":
+                               ofcmd = "pfiles"
                        }
 
                        cmd := exec.Command(ofcmd, args...)