Commit Graph

65 Commits (7c23d960dc51be3064001081db79b8a78f300778)

Author SHA1 Message Date
shirou 145dca90f7 change to use CommandContext.
shirou 26a4a2f995 [process]: move ErrorNoChildren to platform independent.
Ihde 44ef466a5a Resolve issue #492 to reduce CPU overhead associated with fillFromStat
shirou 6a368fb7cd [process]: add ProcessesWithContext.
shirou cd61c36c4f
Merge branch 'master' into feature/add_context_support
Nick Kirsch 482ca3af6d Parses the tgid field, which is the thread group id (aka user-space process id) on Linux. Returns error on other platforms.
shirou 4c73494c78 Add WithContext functions.
tycho garen 08a382b207 make process.processes function public
Leonid Podolny 7ee4a4c6ff Fix Threads() signature to better match python original
Leonid Podolny 7ad3836ad3 Implement Threads() for Linux
shirou a452de7c73 Merge pull request #346 from phemmer/rlimit-current
add current values to rlimit retrieval
Shirou WAKAYAMA 3aa2ffab12 [process] linux: fix NumFD type inconversion.
Conor Branagan 7b058c7436 Just look at filenames for linux NumFDs call.
In NumFDs we don't care about the contents of the fields, just how many
there are.
WAKAYAMA Shirou 5329f8ba79 [process] fix Document of CreatTime seconds -> milliseconds
Sean Chittenden 635b971c0e
Move from the `syscall` package to the `golang.org/x/sys/{unix,windows}`
Patrick Hemmer 60c32eb847 add current values to rlimit retrieval
Jorick Caberio c432d48337 fix truncated process name of linux
Vyacheslav Kuznetsov 4de4e17f06 Added limit constants. Implemented function to parse process limits from /proc.
Thomas Hipp 68ad8d603c
process: make `ClockTicks` arch-independent
The value for `ClockTicks` is defined as `100` by the Linux kernel for
all currently supported architectures in Go. Therefore, there is no need
to define this constant for each architecture separately.

This fixes #260.

Signed-off-by: Thomas Hipp <thomashipp@gmail.com>
Thomas Hipp eb4a57117f
process: determine page sizes via function
Instead of hard-coding the page size for linux systems, use Go's
`Getpagesize` function.

This resolves #258.

Signed-off-by: Thomas Hipp <thipp@suse.de>
Nick Cabatoff 28640e5d73 fix incorrect names for fields in proc/pid/io
Shirou WAKAYAMA 860f5a0803 [process]linux: update comment to show godoc.org.
Shirou WAKAYAMA bd1b04fe67 [process]linux: add document to Status.
Shannon Wynter f99d495462 Run goimports before committing...
Shannon Wynter a4387d0c92 emulate original behaviour
Shannon Wynter c903f14189 Remove the requirement to use lsof by using the information provided in status to get the parent pid
Shirou WAKAYAMA 613a8a90e1 fixed by golint.
Shirou WAKAYAMA 15a7edb712 [process]linux: linux process status change to "R" not "Running" see #173
Shirou WAKAYAMA 4bb84648bf JSON representation is renamed to fit Google JSON style, camelCase.
Shirou WAKAYAMA 46ddd57c72 process has NetIOCounters and IOCounters.
Shirou WAKAYAMA ea152ea901 [BREAKING CHANGE] rename functions to pass golint. ex) net.NetIOCounters -> net.IOCounters
raviparimi be2dab5a40 Provide correct length for slice creation.
- Creating a slice of length numFDs and later appending elements to it
  results in a slice whose first numFDs elements are all nil. It is
  sufficient to create a slice of zero length since we are appending
  elements to it.
- The current allocation will make ret a slice of length 0. What's
  needed is a slice of length len(ofs).
Alexander Inozemtsev f4902fae49 Properly close opened file
shirou 1ab11f7afd Merge pull request #167 from cgilling/cmdline_slice
process: add CmdlineSlice function for linux + freebsd
Chris Gilling a3bbd9e3cd process: change linux NewProcess to only stat /proc/[pid]
Before it was doing a fillFromStatus() call which was much slower
and none of the information was needed, except by the Name() func
which now will call fillFromStatus() if p.name is not set.
Chris Gilling d098bf135f process: fix bug in CmdlineSlice where cmdline is empty
Sometimes (at least on linux) cmdline is empty, this was causing
a panic.
Chris Gilling b8c40ac83c process: add CmdlineSlice function for linux + freebsd
This allows for getting more exact information about each argument
especially if there are arguments that have spaces in them.

This was not implemented for darwin or for windows because they
both currently have not way of properly parsing the cmdline string.
Darwin parses the output of 'ps' which is already whitespace
segmented, and windows just has the cmdline string.
Shirou WAKAYAMA 97bcc355a6 [process]linux: change to use exec.LookPath to invoke lsof.
Johan Walles 70444b571b process: Implement platform independent MemoryPercent()
It calls mem.VirtualMemory() and process.MemoryInfo(), so on the platforms where
those work MemoryPercent() will as well.

Tested on Darwin.
Ben Aldrich faeb99d327 fix meminfo output on consecutive calls
Robert Weber c804a9e755 Per suggestions
Robert Weber 4dcb099f3d no or
Robert Weber 6496b57b3d Need to promote this error
Shirou WAKAYAMA d680853370 net,process[linux]: add process.NetIOCounter and net.NetIOCounterByFile.
Jimmi Dyson 7e4cef7a30 Handle process filenames with spaces in the name
Fixes #120
shirou d49c4afc40 Merge pull request #96 from shirou/process/fix_openfiles
process[linux]: implements OpenFiles.
Shirou WAKAYAMA dd13300833 process[linux,freebsd,darwin]: implements Children using pgrep.
Daniel Theophanes 0af895258e common: rename package common to internal/common. Add ENV helper funcs.
Package common wasn't used for public functions. Place it in an
internal directory to prevent other packages from using.

Remove the distributed references to "HOST_PROC" and "HOST_SYS"
consts and combine into a common function. This also helps so that
if a env var is defined with a trailing slash all will continue to
work as expected.

Fixes #100
Jonathan Chauncey 0461c50666 chore(*): Fixes #94
Added the ability to fetch an alternative location for /proc via an
environment variable. If the env var is not set it will return /proc as
the default value.
Shirou WAKAYAMA 42af4a3e60 process[linux]: implements OpenFiles.