|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
package gopsutil
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"strings"
|
|
|
|
|
"os"
|
|
|
|
|
"strings"
|
|
|
|
|
"syscall"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
@ -87,10 +87,9 @@ func Pid_exists(pid int32) (bool, error) {
|
|
|
|
|
return false, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// POSIX
|
|
|
|
|
func getTerminalMap() (map[uint64]string, error){
|
|
|
|
|
ret := make(map[uint64]string)
|
|
|
|
|
func getTerminalMap() (map[uint64]string, error) {
|
|
|
|
|
ret := make(map[uint64]string)
|
|
|
|
|
termfiles := make([]string, 0)
|
|
|
|
|
|
|
|
|
|
d, err := os.Open("/dev")
|
|
|
|
@ -100,9 +99,9 @@ func getTerminalMap() (map[uint64]string, error){
|
|
|
|
|
defer d.Close()
|
|
|
|
|
|
|
|
|
|
devnames, err := d.Readdirnames(-1)
|
|
|
|
|
for _, devname := range devnames{
|
|
|
|
|
if strings.HasPrefix(devname, "/dev/tty"){
|
|
|
|
|
termfiles = append(termfiles, "/dev/tty/" + devname)
|
|
|
|
|
for _, devname := range devnames {
|
|
|
|
|
if strings.HasPrefix(devname, "/dev/tty") {
|
|
|
|
|
termfiles = append(termfiles, "/dev/tty/"+devname)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -113,15 +112,15 @@ func getTerminalMap() (map[uint64]string, error){
|
|
|
|
|
defer ptsd.Close()
|
|
|
|
|
|
|
|
|
|
ptsnames, err := ptsd.Readdirnames(-1)
|
|
|
|
|
for _, ptsname := range ptsnames{
|
|
|
|
|
termfiles = append(termfiles, "/dev/pts/" + ptsname)
|
|
|
|
|
for _, ptsname := range ptsnames {
|
|
|
|
|
termfiles = append(termfiles, "/dev/pts/"+ptsname)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, name := range termfiles{
|
|
|
|
|
for _, name := range termfiles {
|
|
|
|
|
stat := syscall.Stat_t{}
|
|
|
|
|
syscall.Stat(name, &stat)
|
|
|
|
|
rdev := stat.Rdev
|
|
|
|
|
ret[rdev] = strings.Replace(name, "/dev", "", -1)
|
|
|
|
|
}
|
|
|
|
|
return ret, nil
|
|
|
|
|
return ret, nil
|
|
|
|
|
}
|
|
|
|
|