Documentation ¶
Index ¶
- Constants
- Variables
- func PidExists(pid int32) (bool, error)
- func PidExistsWithContext(ctx context.Context, pid int32) (bool, error)
- func Pids() ([]int32, error)
- func PidsWithContext(ctx context.Context) ([]int32, error)
- type IOCountersStat
- type MemoryInfoExStat
- type MemoryInfoStat
- type MemoryMapsStat
- type NumCtxSwitchesStat
- type OpenFilesStat
- type PageFaultsStat
- type Process
- func (p *Process) Background() (bool, error)
- func (p *Process) BackgroundWithContext(ctx context.Context) (bool, error)
- func (p *Process) CPUAffinity() ([]int32, error)
- func (p *Process) CPUAffinityWithContext(ctx context.Context) ([]int32, error)
- func (p *Process) CPUPercent() (float64, error)
- func (p *Process) CPUPercentWithContext(ctx context.Context) (float64, error)
- func (p *Process) Children() ([]*Process, error)
- func (p *Process) ChildrenWithContext(ctx context.Context) ([]*Process, error)
- func (p *Process) Cmdline() (string, error)
- func (p *Process) CmdlineSlice() ([]string, error)
- func (p *Process) CmdlineSliceWithContext(ctx context.Context) ([]string, error)
- func (p *Process) CmdlineWithContext(ctx context.Context) (string, error)
- func (p *Process) Connections() ([]net.ConnectionStat, error)
- func (p *Process) ConnectionsMax(max int) ([]net.ConnectionStat, error)
- func (p *Process) ConnectionsMaxWithContext(ctx context.Context, max int) ([]net.ConnectionStat, error)
- func (p *Process) ConnectionsWithContext(ctx context.Context) ([]net.ConnectionStat, error)
- func (p *Process) CreateTime() (int64, error)
- func (p *Process) CreateTimeWithContext(ctx context.Context) (int64, error)
- func (p *Process) Cwd() (string, error)
- func (p *Process) CwdWithContext(ctx context.Context) (string, error)
- func (p *Process) Environ() ([]string, error)
- func (p *Process) EnvironWithContext(ctx context.Context) ([]string, error)
- func (p *Process) Exe() (string, error)
- func (p *Process) ExeWithContext(ctx context.Context) (string, error)
- func (p *Process) Foreground() (bool, error)
- func (p *Process) ForegroundWithContext(ctx context.Context) (bool, error)
- func (p *Process) Gids() ([]int32, error)
- func (p *Process) GidsWithContext(ctx context.Context) ([]int32, error)
- func (p *Process) Groups() ([]int32, error)
- func (p *Process) GroupsWithContext(ctx context.Context) ([]int32, error)
- func (p *Process) IOCounters() (*IOCountersStat, error)
- func (p *Process) IOCountersWithContext(ctx context.Context) (*IOCountersStat, error)
- func (p *Process) IOnice() (int32, error)
- func (p *Process) IOniceWithContext(ctx context.Context) (int32, error)
- func (p *Process) IsRunning() (bool, error)
- func (p *Process) IsRunningWithContext(ctx context.Context) (bool, error)
- func (p *Process) Kill() error
- func (p *Process) KillWithContext(ctx context.Context) error
- func (p *Process) MemoryInfo() (*MemoryInfoStat, error)
- func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error)
- func (p *Process) MemoryInfoExWithContext(ctx context.Context) (*MemoryInfoExStat, error)
- func (p *Process) MemoryInfoWithContext(ctx context.Context) (*MemoryInfoStat, error)
- func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error)
- func (p *Process) MemoryMapsWithContext(ctx context.Context, grouped bool) (*[]MemoryMapsStat, error)
- func (p *Process) MemoryPercent() (float32, error)
- func (p *Process) MemoryPercentWithContext(ctx context.Context) (float32, error)
- func (p *Process) Name() (string, error)
- func (p *Process) NameWithContext(ctx context.Context) (string, error)
- func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error)
- func (p *Process) NetIOCountersWithContext(ctx context.Context, pernic bool) ([]net.IOCountersStat, error)
- func (p *Process) Nice() (int32, error)
- func (p *Process) NiceWithContext(ctx context.Context) (int32, error)
- func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error)
- func (p *Process) NumCtxSwitchesWithContext(ctx context.Context) (*NumCtxSwitchesStat, error)
- func (p *Process) NumFDs() (int32, error)
- func (p *Process) NumFDsWithContext(ctx context.Context) (int32, error)
- func (p *Process) NumThreads() (int32, error)
- func (p *Process) NumThreadsWithContext(ctx context.Context) (int32, error)
- func (p *Process) OpenFiles() ([]OpenFilesStat, error)
- func (p *Process) OpenFilesWithContext(ctx context.Context) ([]OpenFilesStat, error)
- func (p *Process) PageFaults() (*PageFaultsStat, error)
- func (p *Process) PageFaultsWithContext(ctx context.Context) (*PageFaultsStat, error)
- func (p *Process) Parent() (*Process, error)
- func (p *Process) ParentWithContext(ctx context.Context) (*Process, error)
- func (p *Process) Percent(interval time.Duration) (float64, error)
- func (p *Process) PercentWithContext(ctx context.Context, interval time.Duration) (float64, error)
- func (p *Process) Ppid() (int32, error)
- func (p *Process) PpidWithContext(ctx context.Context) (int32, error)
- func (p *Process) Resume() error
- func (p *Process) ResumeWithContext(ctx context.Context) error
- func (p *Process) Rlimit() ([]RlimitStat, error)
- func (p *Process) RlimitUsage(gatherUsed bool) ([]RlimitStat, error)
- func (p *Process) RlimitUsageWithContext(ctx context.Context, gatherUsed bool) ([]RlimitStat, error)
- func (p *Process) RlimitWithContext(ctx context.Context) ([]RlimitStat, error)
- func (p *Process) SendSignal(sig syscall.Signal) error
- func (p *Process) SendSignalWithContext(ctx context.Context, sig syscall.Signal) error
- func (p *Process) Status() (string, error)
- func (p *Process) StatusWithContext(ctx context.Context) (string, error)
- func (p Process) String() string
- func (p *Process) Suspend() error
- func (p *Process) SuspendWithContext(ctx context.Context) error
- func (p *Process) Terminal() (string, error)
- func (p *Process) TerminalWithContext(ctx context.Context) (string, error)
- func (p *Process) Terminate() error
- func (p *Process) TerminateWithContext(ctx context.Context) error
- func (p *Process) Tgid() (int32, error)
- func (p *Process) TgidWithContext(ctx context.Context) (int32, error)
- func (p *Process) Threads() (map[int32]*cpu.TimesStat, error)
- func (p *Process) ThreadsWithContext(ctx context.Context) (map[int32]*cpu.TimesStat, error)
- func (p *Process) Times() (*cpu.TimesStat, error)
- func (p *Process) TimesWithContext(ctx context.Context) (*cpu.TimesStat, error)
- func (p *Process) Uids() ([]int32, error)
- func (p *Process) UidsWithContext(ctx context.Context) ([]int32, error)
- func (p *Process) Username() (string, error)
- func (p *Process) UsernameWithContext(ctx context.Context) (string, error)
- type RlimitStat
- type SignalInfoStat
Constants ¶
const ( RLIMIT_CPU int32 = 0 RLIMIT_FSIZE int32 = 1 RLIMIT_DATA int32 = 2 RLIMIT_STACK int32 = 3 RLIMIT_CORE int32 = 4 RLIMIT_RSS int32 = 5 RLIMIT_NPROC int32 = 6 RLIMIT_NOFILE int32 = 7 RLIMIT_MEMLOCK int32 = 8 RLIMIT_AS int32 = 9 RLIMIT_LOCKS int32 = 10 RLIMIT_SIGPENDING int32 = 11 RLIMIT_MSGQUEUE int32 = 12 RLIMIT_NICE int32 = 13 RLIMIT_RTPRIO int32 = 14 RLIMIT_RTTIME int32 = 15 )
Resource limit constants are from /usr/include/x86_64-linux-gnu/bits/resource.h from libc6-dev package in Ubuntu 16.10
const PrioProcess = 0 // linux/resource.h
Variables ¶
var ( ErrorNoChildren = errors.New("process does not have children") ErrorProcessNotRunning = errors.New("process does not exist") )
var ClockTicks = 100 // default value
var PageSize = uint64(os.Getpagesize())
Functions ¶
func PidExistsWithContext ¶ added in v2.18.10
Types ¶
type IOCountersStat ¶
type IOCountersStat struct { ReadCount uint64 `json:"readCount"` WriteCount uint64 `json:"writeCount"` ReadBytes uint64 `json:"readBytes"` WriteBytes uint64 `json:"writeBytes"` }
func (IOCountersStat) String ¶
func (i IOCountersStat) String() string
type MemoryInfoExStat ¶
type MemoryInfoExStat struct { RSS uint64 `json:"rss"` // bytes VMS uint64 `json:"vms"` // 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
func (MemoryInfoExStat) String ¶
func (m MemoryInfoExStat) String() string
type MemoryInfoStat ¶
type MemoryInfoStat struct { RSS uint64 `json:"rss"` // bytes VMS uint64 `json:"vms"` // bytes HWM uint64 `json:"hwm"` // bytes Data uint64 `json:"data"` // bytes Stack uint64 `json:"stack"` // bytes Locked uint64 `json:"locked"` // bytes Swap uint64 `json:"swap"` // bytes }
func (MemoryInfoStat) String ¶
func (m MemoryInfoStat) String() string
type MemoryMapsStat ¶
type MemoryMapsStat struct { Path string `json:"path"` Rss uint64 `json:"rss"` Size uint64 `json:"size"` Pss uint64 `json:"pss"` PrivateClean uint64 `json:"privateClean"` PrivateDirty uint64 `json:"privateDirty"` Referenced uint64 `json:"referenced"` Anonymous uint64 `json:"anonymous"` Swap uint64 `json:"swap"` }
func (MemoryMapsStat) String ¶
func (m MemoryMapsStat) String() string
String returns JSON value of the process.
type NumCtxSwitchesStat ¶
type NumCtxSwitchesStat struct { Voluntary int64 `json:"voluntary"` Involuntary int64 `json:"involuntary"` }
func (NumCtxSwitchesStat) String ¶
func (p NumCtxSwitchesStat) String() string
type OpenFilesStat ¶
func (OpenFilesStat) String ¶
func (o OpenFilesStat) String() string
type PageFaultsStat ¶ added in v2.19.9
type Process ¶
type Process struct { Pid int32 `json:"pid"` // contains filtered or unexported fields }
func NewProcess ¶
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 NewProcessWithContext ¶ added in v2.21.11
func Processes ¶ added in v2.17.11
Processes returns a slice of pointers to Process structs for all currently running processes.
func ProcessesWithContext ¶ added in v2.18.10
func (*Process) Background ¶ added in v2.18.12
Background returns true if the process is in background, false otherwise.
func (*Process) BackgroundWithContext ¶ added in v2.18.12
func (*Process) CPUAffinity ¶
CPUAffinity returns CPU affinity of the process.
func (*Process) CPUAffinityWithContext ¶ added in v2.18.10
func (*Process) CPUPercent ¶ added in v2.17.10
CPU_Percent returns how many percent of the CPU time this process uses
func (*Process) CPUPercentWithContext ¶ added in v2.18.10
func (*Process) Children ¶
Children returns the children of the process represented as a slice of pointers to Process type.
func (*Process) ChildrenWithContext ¶ added in v2.18.10
func (*Process) Cmdline ¶
Cmdline returns the command line arguments of the process as a string with each argument separated by 0x20 ascii character.
func (*Process) CmdlineSlice ¶
CmdlineSlice returns the command line arguments of the process as a slice with each element being an argument.
func (*Process) CmdlineSliceWithContext ¶ added in v2.18.10
func (*Process) CmdlineWithContext ¶ added in v2.18.10
func (*Process) Connections ¶
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 means TCP, UDP or UNIX.
func (*Process) ConnectionsMax ¶ added in v2.19.9
func (p *Process) ConnectionsMax(max int) ([]net.ConnectionStat, error)
Connections returns a slice of net.ConnectionStat used by the process at most `max`.
func (*Process) ConnectionsMaxWithContext ¶ added in v2.19.9
func (*Process) ConnectionsWithContext ¶ added in v2.18.10
func (*Process) CreateTime ¶
CreateTime returns created time of the process in milliseconds since the epoch, in UTC.
func (*Process) CreateTimeWithContext ¶ added in v2.18.10
func (*Process) CwdWithContext ¶ added in v2.18.10
func (*Process) Environ ¶ added in v2.21.11
Environ returns the environment variables of the process.
func (*Process) EnvironWithContext ¶ added in v2.21.11
func (*Process) ExeWithContext ¶ added in v2.18.10
func (*Process) Foreground ¶ added in v2.18.12
Foreground returns true if the process is in foreground, false otherwise.
func (*Process) ForegroundWithContext ¶ added in v2.18.12
func (*Process) GidsWithContext ¶ added in v2.18.10
func (*Process) Groups ¶ added in v2.20.7
Groups returns all group IDs(include supplementary groups) of the process as a slice of the int
func (*Process) GroupsWithContext ¶ added in v2.20.7
func (*Process) IOCounters ¶
func (p *Process) IOCounters() (*IOCountersStat, error)
IOCounters returns IO Counters.
func (*Process) IOCountersWithContext ¶ added in v2.18.10
func (p *Process) IOCountersWithContext(ctx context.Context) (*IOCountersStat, error)
func (*Process) IOniceWithContext ¶ added in v2.18.10
func (*Process) IsRunningWithContext ¶ added in v2.18.10
func (*Process) KillWithContext ¶ added in v2.18.10
func (*Process) MemoryInfo ¶
func (p *Process) MemoryInfo() (*MemoryInfoStat, error)
MemoryInfo returns generic process memory information, such as RSS and VMS.
func (*Process) MemoryInfoEx ¶
func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error)
MemoryInfoEx returns platform-specific process memory information.
func (*Process) MemoryInfoExWithContext ¶ added in v2.18.10
func (p *Process) MemoryInfoExWithContext(ctx context.Context) (*MemoryInfoExStat, error)
func (*Process) MemoryInfoWithContext ¶ added in v2.18.10
func (p *Process) MemoryInfoWithContext(ctx context.Context) (*MemoryInfoStat, error)
func (*Process) MemoryMaps ¶
func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error)
MemoryMaps get memory maps from /proc/(pid)/smaps
func (*Process) MemoryMapsWithContext ¶ added in v2.18.10
func (*Process) MemoryPercent ¶
MemoryPercent returns how many percent of the total RAM this process uses
func (*Process) MemoryPercentWithContext ¶ added in v2.18.10
func (*Process) NameWithContext ¶ added in v2.18.10
func (*Process) NetIOCounters ¶
func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error)
NetIOCounters returns NetIOCounters of the process.
func (*Process) NetIOCountersWithContext ¶ added in v2.18.10
func (*Process) NiceWithContext ¶ added in v2.18.10
func (*Process) NumCtxSwitches ¶
func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error)
NumCtxSwitches returns the number of the context switches of the process.
func (*Process) NumCtxSwitchesWithContext ¶ added in v2.18.10
func (p *Process) NumCtxSwitchesWithContext(ctx context.Context) (*NumCtxSwitchesStat, error)
func (*Process) NumFDsWithContext ¶ added in v2.18.10
func (*Process) NumThreads ¶
NumThreads returns the number of threads used by the process.
func (*Process) NumThreadsWithContext ¶ added in v2.18.10
func (*Process) OpenFiles ¶
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) OpenFilesWithContext ¶ added in v2.18.10
func (p *Process) OpenFilesWithContext(ctx context.Context) ([]OpenFilesStat, error)
func (*Process) PageFaults ¶ added in v2.19.9
func (p *Process) PageFaults() (*PageFaultsStat, error)
PageFaultsInfo returns the process's page fault counters.
func (*Process) PageFaultsWithContext ¶ added in v2.19.9
func (p *Process) PageFaultsWithContext(ctx context.Context) (*PageFaultsStat, error)
func (*Process) ParentWithContext ¶ added in v2.18.10
func (*Process) Percent ¶
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) PercentWithContext ¶ added in v2.18.10
func (*Process) PpidWithContext ¶ added in v2.18.10
func (*Process) ResumeWithContext ¶ added in v2.18.10
func (*Process) Rlimit ¶
func (p *Process) Rlimit() ([]RlimitStat, error)
Rlimit returns Resource Limits.
func (*Process) RlimitUsage ¶ added in v2.17.10
func (p *Process) RlimitUsage(gatherUsed bool) ([]RlimitStat, error)
RlimitUsage returns Resource Limits. If gatherUsed is true, the currently used value will be gathered and added to the resulting RlimitStat.
func (*Process) RlimitUsageWithContext ¶ added in v2.18.10
func (*Process) RlimitWithContext ¶ added in v2.18.10
func (p *Process) RlimitWithContext(ctx context.Context) ([]RlimitStat, error)
func (*Process) SendSignal ¶
SendSignal sends a unix.Signal to the process.
func (*Process) SendSignalWithContext ¶ added in v2.18.10
func (*Process) Status ¶
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 character is same within all supported platforms.
func (*Process) StatusWithContext ¶ added in v2.18.10
func (*Process) SuspendWithContext ¶ added in v2.18.10
func (*Process) TerminalWithContext ¶ added in v2.18.10
func (*Process) TerminateWithContext ¶ added in v2.18.10
func (*Process) TgidWithContext ¶ added in v2.21.11
func (*Process) ThreadsWithContext ¶ added in v2.18.10
func (*Process) TimesWithContext ¶ added in v2.18.10
func (*Process) UidsWithContext ¶ added in v2.18.10
type RlimitStat ¶
type RlimitStat struct { Resource int32 `json:"resource"` Soft int32 `json:"soft"` //TODO too small. needs to be uint64 Hard int32 `json:"hard"` //TODO too small. needs to be uint64 Used uint64 `json:"used"` }
func (RlimitStat) String ¶
func (r RlimitStat) String() string