2016-05-19 21:01:13 +00:00
|
|
|
# Process List Library for Go
|
|
|
|
|
|
|
|
go-ps is a library for Go that implements OS-specific APIs to list and
|
|
|
|
manipulate processes in a platform-safe way. The library can find and
|
2017-03-09 13:39:46 +00:00
|
|
|
list processes on Linux, Mac OS X, Solaris, and Windows.
|
2016-05-19 21:01:13 +00:00
|
|
|
|
|
|
|
If you're new to Go, this library has a good amount of advanced Go educational
|
|
|
|
value as well. It uses some advanced features of Go: build tags, accessing
|
|
|
|
DLL methods for Windows, cgo for Darwin, etc.
|
|
|
|
|
|
|
|
How it works:
|
|
|
|
|
2017-03-09 13:39:46 +00:00
|
|
|
* **Darwin** uses the `sysctl` syscall to retrieve the process table.
|
2016-05-19 21:01:13 +00:00
|
|
|
* **Unix** uses the procfs at `/proc` to inspect the process tree.
|
|
|
|
* **Windows** uses the Windows API, and methods such as
|
|
|
|
`CreateToolhelp32Snapshot` to get a point-in-time snapshot of
|
|
|
|
the process table.
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
Install using standard `go get`:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ go get github.com/mitchellh/go-ps
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
|
|
|
|
Want to contribute? Here is a short TODO list of things that aren't
|
|
|
|
implemented for this library that would be nice:
|
|
|
|
|
|
|
|
* FreeBSD support
|
|
|
|
* Plan9 support
|