diff options
| author | Kali Kaneko (leap communications) <kali@leap.se> | 2019-01-12 18:39:45 +0100 | 
|---|---|---|
| committer | Ruben Pollan <meskio@sindominio.net> | 2019-01-17 12:30:32 +0100 | 
| commit | b1247d2d0d51108c910a73891ff3116e5f032ab1 (patch) | |
| tree | e9948964f0bfb1ad2df3bc7bad02aa1f41ccfbd8 /vendor/github.com/mitchellh/go-ps/process_linux.go | |
| parent | efcb8312e31b5c2261b1a1e95ace55b322cfcc27 (diff) | |
[pkg] all your deps are vendored to us
Diffstat (limited to 'vendor/github.com/mitchellh/go-ps/process_linux.go')
| -rw-r--r-- | vendor/github.com/mitchellh/go-ps/process_linux.go | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/vendor/github.com/mitchellh/go-ps/process_linux.go b/vendor/github.com/mitchellh/go-ps/process_linux.go new file mode 100644 index 0000000..c1558f7 --- /dev/null +++ b/vendor/github.com/mitchellh/go-ps/process_linux.go @@ -0,0 +1,35 @@ +// +build linux + +package ps + +import ( +	"fmt" +	"io/ioutil" +	"strings" +) + +// Refresh reloads all the data associated with this process. +func (p *UnixProcess) Refresh() error { +	statPath := fmt.Sprintf("/proc/%d/stat", p.pid) +	dataBytes, err := ioutil.ReadFile(statPath) +	if err != nil { +		return err +	} + +	// First, parse out the image name +	data := string(dataBytes) +	binStart := strings.IndexRune(data, '(') + 1 +	binEnd := strings.IndexRune(data[binStart:], ')') +	p.binary = data[binStart : binStart+binEnd] + +	// Move past the image name and start parsing the rest +	data = data[binStart+binEnd+2:] +	_, err = fmt.Sscanf(data, +		"%c %d %d %d", +		&p.state, +		&p.ppid, +		&p.pgrp, +		&p.sid) + +	return err +} | 
