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 AuMask
- type AuTidAddr
- type Au_session
- type AuditinfoAddr
- type Eproc
- type ExternProc
- type IOCountersStat
- type Itimerval
- type KinfoProc
- type Label
- type MemoryInfoExStat
- type MemoryInfoStat
- type MemoryMapsStat
- type NumCtxSwitchesStat
- type OpenFilesStat
- type PageFaultsStat
- type Pgrp
- type Posix_cred
- type Proc
- 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) 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) 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 Rlimit
- type RlimitStat
- type Rusage
- type Session
- type Sigacts
- type SignalInfoStat
- type Timespec
- type Timeval
- type UGid_t
- type UcredQueue
- type Upcred
- type UserStruct
- type Uucred
- type Vmspace
- type Vnode
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 ( CTLKern = 1 // "high kernel": proc, limits KernProc = 14 // struct: process entries KernProcPID = 1 // by process id KernProcProc = 8 // only return procs KernProcAll = 0 // everything KernProcPathname = 12 // path to executable )
copied from sys/sysctl.h
const (
ClockTicks = 100 // C.sysconf(C._SC_CLK_TCK)
)
Variables ¶
var ( ErrorNoChildren = errors.New("process does not have children") ErrorProcessNotRunning = errors.New("process does not exist") )
Functions ¶
Types ¶
type Au_session ¶
type Au_session struct { Aia_p *AuditinfoAddr Mask AuMask }
type AuditinfoAddr ¶
type Eproc ¶
type Eproc struct { Paddr *uint64 Sess *Session Pcred Upcred Ucred Uucred Pad_cgo_0 [4]byte Vm Vmspace Ppid int32 Pgid int32 Jobc int16 Pad_cgo_1 [2]byte Tdev int32 Tpgid int32 Pad_cgo_2 [4]byte Tsess *Session Wmesg [8]int8 Xsize int32 Xrssize int16 Xccount int16 Xswrss int16 Pad_cgo_3 [2]byte Flag int32 Login [12]int8 Spare [4]int32 Pad_cgo_4 [4]byte }
type ExternProc ¶
type ExternProc struct { P_un [16]byte P_vmspace uint64 P_sigacts uint64 Pad_cgo_0 [3]byte P_flag int32 P_stat int8 P_pid int32 P_oppid int32 P_dupfd int32 Pad_cgo_1 [4]byte User_stack uint64 Exit_thread uint64 P_debugger int32 Sigwait int32 P_estcpu uint32 P_cpticks int32 P_pctcpu uint32 Pad_cgo_2 [4]byte P_wchan uint64 P_wmesg uint64 P_swtime uint32 P_slptime uint32 P_realtimer Itimerval P_rtime Timeval P_uticks uint64 P_sticks uint64 P_iticks uint64 P_traceflag int32 Pad_cgo_3 [4]byte P_tracep uint64 P_siglist int32 Pad_cgo_4 [4]byte P_textvp uint64 P_holdcnt int32 P_sigmask uint32 P_sigignore uint32 P_sigcatch uint32 P_priority uint8 P_usrpri uint8 P_nice int8 P_comm [17]int8 Pad_cgo_5 [4]byte P_pgrp uint64 P_addr uint64 P_xstat uint16 P_acflag uint16 Pad_cgo_6 [4]byte P_ru uint64 }
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 KinfoProc ¶
type KinfoProc struct { Proc ExternProc Eproc Eproc }
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 { }
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 ¶
type Posix_cred ¶
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 (*Process) Background ¶
Background returns true if the process is in background, false otherwise.
func (*Process) BackgroundWithContext ¶
func (*Process) CPUAffinity ¶
func (*Process) CPUAffinityWithContext ¶
func (*Process) CPUPercent ¶
CPU_Percent returns how many percent of the CPU time this process uses
func (*Process) CPUPercentWithContext ¶
func (*Process) ChildrenWithContext ¶
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. Because of current deficiencies in the way that the command line arguments are found, single arguments that have spaces in the will actually be reported as two separate items. In order to do something better CGO would be needed to use the native darwin functions.
func (*Process) CmdlineSliceWithContext ¶
func (*Process) CmdlineWithContext ¶
func (*Process) Connections ¶
func (p *Process) Connections() ([]net.ConnectionStat, error)
func (*Process) ConnectionsMax ¶
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 ¶
func (*Process) ConnectionsWithContext ¶
func (*Process) CreateTime ¶
CreateTime returns created time of the process in milliseconds since the epoch, in UTC.
func (*Process) CreateTimeWithContext ¶
func (*Process) CwdWithContext ¶
func (*Process) ExeWithContext ¶
func (*Process) Foreground ¶
func (*Process) ForegroundWithContext ¶
func (*Process) GidsWithContext ¶
func (*Process) Groups ¶
Groups returns all group IDs(include supplementary groups) of the process as a slice of the int
func (*Process) GroupsWithContext ¶
func (*Process) IOCounters ¶
func (p *Process) IOCounters() (*IOCountersStat, error)
func (*Process) IOCountersWithContext ¶
func (p *Process) IOCountersWithContext(ctx context.Context) (*IOCountersStat, error)
func (*Process) IOniceWithContext ¶
func (*Process) IsRunningWithContext ¶
func (*Process) MemoryInfo ¶
func (p *Process) MemoryInfo() (*MemoryInfoStat, error)
func (*Process) MemoryInfoEx ¶
func (p *Process) MemoryInfoEx() (*MemoryInfoExStat, error)
func (*Process) MemoryInfoExWithContext ¶
func (p *Process) MemoryInfoExWithContext(ctx context.Context) (*MemoryInfoExStat, error)
func (*Process) MemoryInfoWithContext ¶
func (p *Process) MemoryInfoWithContext(ctx context.Context) (*MemoryInfoStat, error)
func (*Process) MemoryMaps ¶
func (p *Process) MemoryMaps(grouped bool) (*[]MemoryMapsStat, error)
func (*Process) MemoryMapsWithContext ¶
func (*Process) MemoryPercent ¶
MemoryPercent returns how many percent of the total RAM this process uses
func (*Process) MemoryPercentWithContext ¶
func (*Process) NameWithContext ¶
func (*Process) NetIOCounters ¶
func (p *Process) NetIOCounters(pernic bool) ([]net.IOCountersStat, error)
func (*Process) NetIOCountersWithContext ¶
func (*Process) NiceWithContext ¶
func (*Process) NumCtxSwitches ¶
func (p *Process) NumCtxSwitches() (*NumCtxSwitchesStat, error)
func (*Process) NumCtxSwitchesWithContext ¶
func (p *Process) NumCtxSwitchesWithContext(ctx context.Context) (*NumCtxSwitchesStat, error)
func (*Process) NumFDsWithContext ¶
func (*Process) NumThreads ¶
func (*Process) NumThreadsWithContext ¶
func (*Process) OpenFiles ¶
func (p *Process) OpenFiles() ([]OpenFilesStat, error)
func (*Process) OpenFilesWithContext ¶
func (p *Process) OpenFilesWithContext(ctx context.Context) ([]OpenFilesStat, error)
func (*Process) PageFaults ¶
func (p *Process) PageFaults() (*PageFaultsStat, error)
func (*Process) PageFaultsWithContext ¶
func (p *Process) PageFaultsWithContext(ctx context.Context) (*PageFaultsStat, error)
func (*Process) ParentWithContext ¶
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 ¶
func (*Process) PpidWithContext ¶
func (*Process) Rlimit ¶
func (p *Process) Rlimit() ([]RlimitStat, error)
func (*Process) RlimitUsage ¶
func (p *Process) RlimitUsage(gatherUsed bool) ([]RlimitStat, error)
func (*Process) RlimitUsageWithContext ¶
func (*Process) RlimitWithContext ¶
func (p *Process) RlimitWithContext(ctx context.Context) ([]RlimitStat, error)
func (*Process) SendSignal ¶
SendSignal sends a unix.Signal to the process. Currently, SIGSTOP, SIGCONT, SIGTERM and SIGKILL are supported.
func (*Process) SendSignalWithContext ¶
func (*Process) StatusWithContext ¶
func (*Process) SuspendWithContext ¶
func (*Process) TerminalWithContext ¶
func (*Process) TerminateWithContext ¶
func (*Process) ThreadsWithContext ¶
func (*Process) TimesWithContext ¶
func (*Process) UidsWithContext ¶
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
type SignalInfoStat ¶
type UcredQueue ¶
type UcredQueue struct { Next *ucred Prev **ucred }
type UserStruct ¶
type UserStruct struct{}