gopsutil: Index | Files

package process

import ""


Package Files

process.go process_linux.go process_posix.go


const (
    PrioProcess               = 0   // linux/resource.h
    ClockTicks                = 100 // C.sysconf(C._SC_CLK_TCK)
    WorldReadable os.FileMode = 4


var (
    CachedBootTime  = uint64(0)
    ErrorNoChildren = errors.New("process does not have children")
    PageSize        = uint64(os.Getpagesize())

func AllProcesses Uses

func AllProcesses() (map[int32]*FilledProcess, error)

func PidExists Uses

func PidExists(pid int32) (bool, error)

func Pids Uses

func Pids() ([]int32, error)

Pids returns a slice of process ID list which are running now.

type FilledProcess Uses

type FilledProcess struct {
    Pid  int32
    Ppid int32
    // process namespaced PID
    NsPid   int32
    Cmdline []string
    // stat
    CpuTime     cpu.TimesStat
    Nice        int32
    CreateTime  int64
    OpenFdCount int32

    // status
    Name        string
    Status      string
    Uids        []int32
    Gids        []int32
    NumThreads  int32
    CtxSwitches *NumCtxSwitchesStat
    // statm
    MemInfo   *MemoryInfoStat
    MemInfoEx *MemoryInfoExStat
    // cwd
    Cwd string
    // exe
    Exe string
    // IO
    IOStat *IOCountersStat
    // Username (windows only)
    Username string

type IOCountersStat Uses

type IOCountersStat struct {
    ReadCount  uint64 `json:"readCount"`
    WriteCount uint64 `json:"writeCount"`
    ReadBytes  uint64 `json:"readBytes"`
    WriteBytes uint64 `json:"writeBytes"`

func (IOCountersStat) String Uses

func (i IOCountersStat) String() string

type MemoryInfoExStat Uses

type MemoryInfoExStat struct {
    RSS    uint64 `json:"rss"`    // bytes
    VMS    uint64 `json:"vms"`    // bytes
    Shared uint64 `json:"shared"` // bytes
    Text   uint64 `json:"text"`   // bytes
    Lib    uint64 `json:"lib"`    // bytes
    Data   uint64 `json:"data"`   // bytes
    Dirty  uint64 `json:"dirty"`  // bytes

MemoryInfoExStat is different between OSes

type MemoryInfoStat Uses

type MemoryInfoStat struct {
    RSS  uint64 `json:"rss"`  // bytes
    VMS  uint64 `json:"vms"`  // bytes
    Swap uint64 `json:"swap"` // bytes

func (MemoryInfoStat) String Uses

func (m MemoryInfoStat) String() string

type MemoryMapsStat Uses

type MemoryMapsStat struct {
    Path         string `json:"path"`
    Rss          uint64 `json:"rss"`
    Size         uint64 `json:"size"`
    Pss          uint64 `json:"pss"`
    SharedClean  uint64 `json:"sharedClean"`
    SharedDirty  uint64 `json:"sharedDirty"`
    PrivateClean uint64 `json:"privateClean"`
    PrivateDirty uint64 `json:"privateDirty"`
    Referenced   uint64 `json:"referenced"`
    Anonymous    uint64 `json:"anonymous"`
    Swap         uint64 `json:"swap"`

func (MemoryMapsStat) String Uses

func (m MemoryMapsStat) String() string

String returns JSON value of the process.

type NumCtxSwitchesStat Uses

type NumCtxSwitchesStat struct {
    Voluntary   int64 `json:"voluntary"`
    Involuntary int64 `json:"involuntary"`

func (NumCtxSwitchesStat) String Uses

func (p NumCtxSwitchesStat) String() string

type OpenFilesStat Uses

type OpenFilesStat struct {
    Path string `json:"path"`
    Fd   uint64 `json:"fd"`

func (OpenFilesStat) String Uses

func (o OpenFilesStat) String() string

type Process Uses

type Process struct {
    Pid   int32 `json:"pid"`
    NsPid int32 `json:"nspid"`
    // contains filtered or unexported fields

func NewProcess Uses

func NewProcess(pid int32) (*Process, error)

NewProcess creates a new Process instance, it only stores the pid and checks that the process exists. Other method on Process can be used to get more information about the process. An error will be returned if the process does not exist.

func (*Process) CPUAffinity Uses

func (p *Process) CPUAffinity() ([]int32, error)

CPUAffinity returns CPU affinity of the process.

Notice: Not implemented yet.

func (*Process) Children Uses

func (p *Process) Children() ([]*Process, error)

Children returns a slice of Process of the process.

func (*Process) Cmdline Uses

func (p *Process) Cmdline() (string, error)

Cmdline returns the command line arguments of the process as a string with each argument separated by 0x20 ascii character.

func (*Process) CmdlineSlice Uses

func (p *Process) CmdlineSlice() ([]string, error)

CmdlineSlice returns the command line arguments of the process as a slice with each element being an argument.

func (*Process) Connections Uses

func (p *Process) Connections() ([]net.ConnectionStat, error)

Connections returns a slice of net.ConnectionStat used by the process. This returns all kind of the connection. This measn TCP, UDP or UNIX.

func (*Process) CreateTime Uses

func (p *Process) CreateTime() (int64, error)

CreateTime returns created time of the process in seconds since the epoch, in UTC.

func (*Process) Cwd Uses

func (p *Process) Cwd() (string, error)

Cwd returns current working directory of the process.

func (*Process) Exe Uses

func (p *Process) Exe() (string, error)

Exe returns executable path of the process.

func (*Process) Gids Uses

func (p *Process) Gids() ([]int32, error)

Gids returns group ids of the process as a slice of the int

func (*Process) IOCounters Uses

func (p *Process) IOCounters() (*IOCountersStat, error)

IOCounters returns IO Counters.

func (*Process) IOnice Uses

func (p *Process) IOnice() (int32, error)

IOnice returns process I/O nice value (priority).

func (*Process) IsRunning Uses

func (p *Process) IsRunning() (bool, error)

IsRunning returns whether the process is running or not. Not implemented yet.

func (*Process) Kill Uses

func (p *Process) Kill() error

Kill sends SIGKILL to the process.

func (*Process) MemoryInfo Uses

func (p *Process) MemoryInfo() (*MemoryInfoStat, error)

MemoryInfo returns platform in-dependend memory information, such as RSS, VMS and Swap

func (*Process) MemoryInfoEx Uses

func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error)

MemoryInfoEx returns platform dependend memory information.

func (*Process) MemoryMaps Uses

func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error)

MemoryMaps get memory maps from /proc/(pid)/smaps

func (*Process) MemoryPercent Uses

func (p *Process) MemoryPercent() (float32, error)

MemoryPercent returns how many percent of the total RAM this process uses

func (*Process) Name Uses

func (p *Process) Name() (string, error)

Name returns name of the process.

func (*Process) NetIOCounters Uses

func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error)

NetIOCounters returns NetIOCounters of the process.

func (*Process) Nice Uses

func (p *Process) Nice() (int32, error)

Nice returns a nice value (priority). Notice: gopsutil can not set nice value.

func (*Process) NumCtxSwitches Uses

func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error)

NumCtxSwitches returns the number of the context switches of the process.

func (*Process) NumFDs Uses

func (p *Process) NumFDs() (int32, error)

NumFDs returns the number of File Descriptors used by the process.

func (*Process) NumThreads Uses

func (p *Process) NumThreads() (int32, error)

NumThreads returns the number of threads used by the process.

func (*Process) OpenFiles Uses

func (p *Process) OpenFiles() ([]OpenFilesStat, error)

OpenFiles returns a slice of OpenFilesStat opend by the process. OpenFilesStat includes a file path and file descriptor.

func (*Process) Parent Uses

func (p *Process) Parent() (*Process, error)

Parent returns parent Process of the process.

func (*Process) Percent Uses

func (p *Process) Percent(interval time.Duration) (float64, error)

If interval is 0, return difference from last call(non-blocking). If interval > 0, wait interval sec and return diffrence between start and end.

func (*Process) Ppid Uses

func (p *Process) Ppid() (int32, error)

Ppid returns Parent Process ID of the process.

func (*Process) Resume Uses

func (p *Process) Resume() error

Resume sends SIGCONT to the process.

func (*Process) Rlimit Uses

func (p *Process) Rlimit() ([]RlimitStat, error)

Rlimit returns Resource Limits.

func (*Process) SendSignal Uses

func (p *Process) SendSignal(sig syscall.Signal) error

SendSignal sends a syscall.Signal to the process. Currently, SIGSTOP, SIGCONT, SIGTERM and SIGKILL are supported.

func (*Process) Status Uses

func (p *Process) Status() (string, error)

Status returns the process status. Return value could be one of these. R: Running S: Sleep T: Stop I: Idle Z: Zombie W: Wait L: Lock The charactor is same within all supported platforms.

func (Process) String Uses

func (p Process) String() string

func (*Process) Suspend Uses

func (p *Process) Suspend() error

Suspend sends SIGSTOP to the process.

func (*Process) Terminal Uses

func (p *Process) Terminal() (string, error)

Terminal returns a terminal which is associated with the process.

func (*Process) Terminate Uses

func (p *Process) Terminate() error

Terminate sends SIGTERM to the process.

func (*Process) Threads Uses

func (p *Process) Threads() (map[string]string, error)

Threads returns a map of threads

Notice: Not implemented yet. always returns empty map.

func (*Process) Times Uses

func (p *Process) Times() (*cpu.TimesStat, error)

Times returns CPU times of the process.

func (*Process) Uids Uses

func (p *Process) Uids() ([]int32, error)

Uids returns user ids of the process as a slice of the int

func (*Process) Username Uses

func (p *Process) Username() (string, error)

Username returns a username of the process.

type RlimitStat Uses

type RlimitStat struct {
    Resource int32 `json:"resource"`
    Soft     int32 `json:"soft"`
    Hard     int32 `json:"hard"`

func (RlimitStat) String Uses

func (r RlimitStat) String() string

Package process imports 20 packages (graph) and is imported by 4 packages. Updated 2020-11-24. Refresh now. Tools for package owners.