435c0d9fc8
This PR switches the Nomad repository from using govendor to Go modules for managing dependencies. Aspects of the Nomad workflow remain pretty much the same. The usual Makefile targets should continue to work as they always did. The API submodule simply defers to the parent Nomad version on the repository, keeping the semantics of API versioning that currently exists. |
||
---|---|---|
.. | ||
.gitignore | ||
.travis.yml | ||
LICENSE.md | ||
process.go | ||
process_darwin.go | ||
process_freebsd.go | ||
process_linux.go | ||
process_solaris.go | ||
process_unix.go | ||
process_windows.go | ||
README.md | ||
Vagrantfile |
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 list processes on Linux, Mac OS X, Solaris, and Windows.
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:
- Darwin uses the
sysctl
syscall to retrieve the process table. - 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