Fixed up the code

pull/333/head
Nex 8 years ago
parent e8f57e1578
commit 5c39d4e3f3

@ -4,49 +4,51 @@ import (
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
"github.com/shirou/gopsutil/internal/common" "strconv"
"github.com/botherder/gopsutil/internal/common"
) )
func FindProcsByFile(file_path string) []int { func FindProcsByFile(file_path string) ([]int, error) {
if _, err := os.Stat(file_path); err != nil { if _, err := os.Stat(file_path); err != nil {
return []int, err return []int{}, err
} }
lsof_bin, err := exec.LookPath("lsof") lsof_bin, err := exec.LookPath("lsof")
if err != nil { if err != nil {
return []int, err return []int{}, err
} }
grep_bin, err := exec.LookPath("grep") grep_bin, err := exec.LookPath("grep")
if err != nil { if err != nil {
return []int, err return []int{}, err
} }
awk_bin, err := exec.LookPath("awk") awk_bin, err := exec.LookPath("awk")
if err != nil { if err != nil {
return []int, err return []int{}, err
} }
sort_bin, err := exec.LookPath("sort") sort_bin, err := exec.LookPath("sort")
if err != nil { if err != nil {
return []int, err return []int{}, err
} }
lsof := exec.Command(lsof_bin, file_path) lsof := exec.Command(lsof_bin, file_path)
grep := exec.Command(grep, "-V", "COMMAND") grep := exec.Command(grep_bin, "-v", "COMMAND")
awk := exec.Command(awk_bin, "{print $2}") awk := exec.Command(awk_bin, "{print $2}")
sort := exec.Command(sort_bin, "-u") sort := exec.Command(sort_bin, "-u")
output, _, err := common.Pipeline(lsof, grep, awk, sort) output, _, err := common.Pipeline(lsof, grep, awk, sort)
if err != nil { if err != nil {
return []int, err return []int{}, err
} }
pids := strings.Split(output, "\n") pids := strings.Split(string(output), "\n")
ret := []int ret := []int{}
for _, pid := range pids { for _, pid := range pids {
if pid != "" { if pid != "" {
ret = append(pids, int(pid)) int_pid, _ := strconv.Atoi(pid)
ret = append(ret, int_pid)
} }
} }
return ret, nil return ret, nil

Loading…
Cancel
Save