41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
|
// ps provides an API for finding and listing processes in a platform-agnostic
|
||
|
// way.
|
||
|
//
|
||
|
// NOTE: If you're reading these docs online via GoDocs or some other system,
|
||
|
// you might only see the Unix docs. This project makes heavy use of
|
||
|
// platform-specific implementations. We recommend reading the source if you
|
||
|
// are interested.
|
||
|
package ps
|
||
|
|
||
|
// Process is the generic interface that is implemented on every platform
|
||
|
// and provides common operations for processes.
|
||
|
type Process interface {
|
||
|
// Pid is the process ID for this process.
|
||
|
Pid() int
|
||
|
|
||
|
// PPid is the parent process ID for this process.
|
||
|
PPid() int
|
||
|
|
||
|
// Executable name running this process. This is not a path to the
|
||
|
// executable.
|
||
|
Executable() string
|
||
|
}
|
||
|
|
||
|
// Processes returns all processes.
|
||
|
//
|
||
|
// This of course will be a point-in-time snapshot of when this method was
|
||
|
// called. Some operating systems don't provide snapshot capability of the
|
||
|
// process table, in which case the process table returned might contain
|
||
|
// ephemeral entities that happened to be running when this was called.
|
||
|
func Processes() ([]Process, error) {
|
||
|
return processes()
|
||
|
}
|
||
|
|
||
|
// FindProcess looks up a single process by pid.
|
||
|
//
|
||
|
// Process will be nil and error will be nil if a matching process is
|
||
|
// not found.
|
||
|
func FindProcess(pid int) (Process, error) {
|
||
|
return findProcess(pid)
|
||
|
}
|