31 lines
569 B
Go
31 lines
569 B
Go
//go:build !windows
|
|
// +build !windows
|
|
|
|
package procstat
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// Pattern matches on the process name
|
|
func (pg *NativeFinder) Pattern(pattern string) ([]PID, error) {
|
|
var pids []PID
|
|
|
|
procs, err := pg.FastProcessList()
|
|
if err != nil {
|
|
return pids, err
|
|
}
|
|
for _, p := range procs {
|
|
name, err := p.Exe()
|
|
if err != nil {
|
|
//skip, this can be caused by the pid no longer existing
|
|
//or you having no permissions to access it
|
|
continue
|
|
}
|
|
if strings.Contains(name, pattern) {
|
|
pids = append(pids, PID(p.Pid))
|
|
}
|
|
}
|
|
return pids, err
|
|
}
|