proc

package
v0.0.0-...-7f0a2ea Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2019 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetClkTck

func GetClkTck() (uint64, error)

GetClkTck sysconf(_SC_CLK_TCK)

func GetPids

func GetPids(rootPath string) ([]int64, error)

GetPids get pid list

Types

type Cmdline

type Cmdline struct {
	Args []string `json:"args"`
}

Cmdline /system/<pid>/cmdline

func (*Cmdline) Scan

func (c *Cmdline) Scan(rootPath string, pid int64) error

Scan /system/<pid>/cmdline

type Proc

type Proc struct {
	RootPath string
	Uid      string
	Gid      string
	UserName string
	Name     string
	Cpu      string
	Memory   string
	Start    int64
	Time     int64
	Cmdline  Cmdline
	Stat     Stat
	Status   Status
}

Proc /system/<pid>

func (*Proc) CookEtime

func (p *Proc) CookEtime(uptime *system.Uptime, clkTck uint64) uint64

CookEtime gitlab.com/procps-ng/procps/ps/output.c cook_etime

func (*Proc) Scan

func (p *Proc) Scan(stat *system.Stat, meminfo *system.Meminfo, uptime *system.Uptime, clkTck uint64, pid int64) error

Scan /system/<pid>/xxx

func (*Proc) SetCpu

func (p *Proc) SetCpu(uptime *system.Uptime, clkTck uint64)

SetCpu Calculation CPU Rate

func (*Proc) SetMemory

func (p *Proc) SetMemory(meminfo *system.Meminfo)

SetMemory Calculation Memory Rate

func (*Proc) SetStart

func (p *Proc) SetStart(stat *system.Stat, clkTck uint64)

SetStart Calculate Process Start time

func (*Proc) SetTime

func (p *Proc) SetTime(clkTck uint64)

SetTime Calculate Process time

func (*Proc) SetUser

func (p *Proc) SetUser() error

SetUser Set User Property

type Procs

type Procs struct {
	Stat    system.Stat
	Uptime  system.Uptime
	Meminfo system.Meminfo
	ClkTck  uint64
	Procs   []Proc
}

Procs process list

func GetProc

func GetProc() (*Procs, error)

GetProc GET /v1/proc

type Stat

type Stat struct {
	Pid                 int64  `json:"pid"`
	Comm                string `json:"comm"`
	State               string `json:"state"`
	Ppid                int64  `json:"ppid"`
	Pgrp                int64  `json:"pgrp"`
	Session             int64  `json:"session"`
	TtyNr               int64  `json:"tty_nr"`
	Tpgid               int64  `json:"tpgid"`
	Flags               uint64 `json:"flags"`
	Minflt              uint64 `json:"minflt"`
	Cminflt             uint64 `json:"cminflt"`
	Majflt              uint64 `json:"majflt"`
	Cmajflt             uint64 `json:"cmajflt"`
	Utime               uint64 `json:"utime"`
	Stime               uint64 `json:"stime"`
	Cutime              int64  `json:"cutime"`
	Cstime              int64  `json:"cstime"`
	Priority            int64  `json:"priority"`
	Nice                int64  `json:"nice"`
	NumThreads          int64  `json:"num_threads"`
	Itrealvalue         int64  `json:"itrealvalue"`
	Starttime           uint64 `json:"starttime"`
	Vsize               uint64 `json:"vsize"`
	Rss                 int64  `json:"rss"`
	Rsslim              uint64 `json:"rsslim"`
	Startcode           uint64 `json:"startcode"`
	Endcode             uint64 `json:"endcode"`
	Startstack          uint64 `json:"startstack"`
	Kstkesp             uint64 `json:"kstkesp"`
	Kstkeip             uint64 `json:"kstkeip"`
	Signal              uint64 `json:"signal"`
	Blocked             uint64 `json:"blocked"`
	Sigignore           uint64 `json:"sigignore"`
	Sigcatch            uint64 `json:"sigcatch"`
	Wchan               uint64 `json:"wchan"`
	Nswap               uint64 `json:"nswap"`
	Cnswap              uint64 `json:"cnswap"`
	ExitSignal          int64  `json:"exit_signal"`
	Processor           int64  `json:"processor"`
	RtPriority          uint64 `json:"rt_priority"`
	Policy              uint64 `json:"policy"`
	DelayacctBlkioTicks uint64 `json:"delayacct_blkio_ticks"`
	GuestTime           uint64 `json:"guest_time"`
	CguestTime          int64  `json:"cguest_time"`
	StartData           uint64 `json:"start_data"`
	EndData             uint64 `json:"end_data"`
	StartBrk            uint64 `json:"start_brk"`
	ArgStart            uint64 `json:"arg_start"`
	ArgEnd              uint64 `json:"arg_end"`
	EnvStart            uint64 `json:"env_start"`
	EnvEnd              uint64 `json:"env_end"`
	ExitCode            int64  `json:"exit_code"`
}

Stat see https://linuxjm.osdn.jp/html/LDP_man-pages/man5/rproc.5.html

func (*Stat) Scan

func (s *Stat) Scan(rootPath string, pid int64) error

Scan /system/<pid>/stat

type Status

type Status struct {
	Name                     string   `json:"Name"`
	Umask                    string   `json:"Umask"`
	State                    string   `json:"State"`
	Tgid                     int64    `json:"Tgid"`
	Ngid                     int64    `json:"Ngid"`
	Pid                      int64    `json:"Pid"`
	PPid                     int64    `json:"PPid"`
	TracerPid                int64    `json:"TracerPid"`
	Uid                      []int64  `json:"Uid"`
	Gid                      []int64  `json:"Gid"`
	FDSize                   int64    `json:"FDSize"`
	Groups                   []int64  `json:"Groups"`
	NStgid                   []int64  `json:"NStgid"`
	NSpid                    []int64  `json:"NSpid"`
	NSpgid                   []int64  `json:"NSpgid"`
	NSsid                    []int64  `json:"NSsid"`
	VmPeak                   uint64   `json:"VmPeak"`
	VmSize                   uint64   `json:"VmSize"`
	VmLck                    uint64   `json:"VmLck"`
	VmPin                    uint64   `json:"VmPin"`
	VmHWM                    uint64   `json:"VmHWM"`
	VmRSS                    uint64   `json:"VmRSS"`
	RssAnon                  uint64   `json:"RssAnon"`
	RssFile                  uint64   `json:"RssFile"`
	RssShmem                 uint64   `json:"RssShmem"`
	VmData                   uint64   `json:"VmData"`
	VmStk                    uint64   `json:"VmStk"`
	VmExe                    uint64   `json:"VmExe"`
	VmLib                    uint64   `json:"VmLib"`
	VmPTE                    uint64   `json:"VmPTE"`
	VmSwap                   uint64   `json:"VmSwap"`
	HugetlbPages             uint64   `json:"HugetlbPages"`
	CoreDumping              uint64   `json:"CoreDumping"`
	Threads                  uint64   `json:"Threads"`
	SigQ                     []int64  `json:"SigQ"`
	SigPnd                   string   `json:"SigPnd"`
	ShdPnd                   string   `json:"ShdPnd"`
	SigBlk                   string   `json:"SigBlk"`
	SigIgn                   string   `json:"SigIgn"`
	SigCgt                   string   `json:"SigCgt"`
	CapInh                   string   `json:"CapInh"`
	CapPrm                   string   `json:"CapPrm"`
	CapEff                   string   `json:"CapEff"`
	CapBnd                   string   `json:"CapBnd"`
	CapAmb                   string   `json:"CapAmb"`
	NoNewPrivs               uint64   `json:"NoNewPrivs"`
	Seccomp                  uint64   `json:"Seccomp"`
	SpeculationStoreBypass   string   `json:"Speculation_Store_Bypass"`
	CpusAllowed              string   `json:"Cpus_allowed"`
	CpusAllowedList          string   `json:"Cpus_allowed_list"`
	MemsAllowed              []string `json:"Mems_allowed"`
	MemsAllowedList          string   `json:"Mems_allowed_list"`
	VoluntaryCtxtSwitches    uint64   `json:"voluntary_ctxt_switches"`
	NonvoluntaryCtxtSwitches uint64   `json:"nonvoluntary_ctxt_switches"`
}

Status /system/<pid>/status

func (*Status) Scan

func (s *Status) Scan(rootPath string, pid int64) error

Scan /system/<pid>/status

Jump to

Keyboard shortcuts

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