Fixed up the code

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

@ -4,49 +4,51 @@ import (
"os"
"os/exec"
"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 {
return []int, err
return []int{}, err
}
lsof_bin, err := exec.LookPath("lsof")
if err != nil {
return []int, err
return []int{}, err
}
grep_bin, err := exec.LookPath("grep")
if err != nil {
return []int, err
return []int{}, err
}
awk_bin, err := exec.LookPath("awk")
if err != nil {
return []int, err
return []int{}, err
}
sort_bin, err := exec.LookPath("sort")
if err != nil {
return []int, err
return []int{}, err
}
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}")
sort := exec.Command(sort_bin, "-u")
output, _, err := common.Pipeline(lsof, grep, awk, sort)
if err != nil {
return []int, err
return []int{}, err
}
pids := strings.Split(output, "\n")
ret := []int
pids := strings.Split(string(output), "\n")
ret := []int{}
for _, pid := range pids {
if pid != "" {
ret = append(pids, int(pid))
int_pid, _ := strconv.Atoi(pid)
ret = append(ret, int_pid)
}
}
return ret, nil

Loading…
Cancel
Save