ps

package module
v0.0.0-...-3ef9207 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2026 License: MIT Imports: 8 Imported by: 0

README

Process List Library for Go GoDoc

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

go get github.com/shoce/go-ps

Documentation

Overview

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.

Index

Constants

This section is empty.

Variables

View Source
var (
	BootTime time.Time
	ClkTck   int64
)

Functions

This section is empty.

Types

type Process

type Process interface {
	Pid() int

	PPid() int
	Pgrp() int
	Sid() int

	Executable() string
	Cmdline() []string

	Utime() time.Duration
	Stime() time.Duration
	Starttime() time.Time

	Vsize() uint64
	Rss() uint32

	Cgroup() string
}

Process is the generic interface that is implemented on every platform and provides common operations for processes.

func FindProcess

func FindProcess(pid int) (Process, error)

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 Processes

func Processes() ([]Process, error)

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.

type UnixProcess

type UnixProcess struct {
	// contains filtered or unexported fields
}

UnixProcess is an implementation of Process that contains Unix-specific fields and information.

func (*UnixProcess) Cgroup

func (p *UnixProcess) Cgroup() string

func (*UnixProcess) Cmdline

func (p *UnixProcess) Cmdline() []string

func (*UnixProcess) Cstime

func (p *UnixProcess) Cstime() int64

func (*UnixProcess) Cutime

func (p *UnixProcess) Cutime() int64

func (*UnixProcess) Executable

func (p *UnixProcess) Executable() string

func (*UnixProcess) PPid

func (p *UnixProcess) PPid() int

func (*UnixProcess) Pgrp

func (p *UnixProcess) Pgrp() int

func (*UnixProcess) Pid

func (p *UnixProcess) Pid() int

func (*UnixProcess) Refresh

func (p *UnixProcess) Refresh() error

Refresh reloads all the data associated with this process.

func (*UnixProcess) Rss

func (p *UnixProcess) Rss() uint32

func (*UnixProcess) Sid

func (p *UnixProcess) Sid() int

func (*UnixProcess) Starttime

func (p *UnixProcess) Starttime() time.Time

func (*UnixProcess) Stime

func (p *UnixProcess) Stime() time.Duration

func (*UnixProcess) Utime

func (p *UnixProcess) Utime() time.Duration

func (*UnixProcess) Vsize

func (p *UnixProcess) Vsize() uint64

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL