Commit Graph

63 Commits (master)

Author SHA1 Message Date
Romain Marcadier 5da36ee6c8
fix: CmdlineSlice[WithContext] incorrect on Windows 3 weeks ago
Lomanic 76ccf0d220 [process][darwin][freebsd][linux][openbsd] Make process.Children not reliant on pgrep
pgrep -P $PID exits with status of 1 (and nothing in stdout nor stderr) both if
a process doesn't exist or it doesn't have child processes, so we don't
use it anymore on these OSes. We sort PIDs as pgrep did.

Also deprecate the ErrorNoChildren error when there are no child processes,
this is erroneous (simply check for the length of the returned slice, plus
this is not an error per se), this was only returned on linux anyway.

Fixes #1698
6 months ago
Cnpt 829f2fafbd
Refactoring the algorithm for calculating CPU usage (#1692)
refactor(process): Refactoring the algorithm for calculating CPU usage
7 months ago
shirou 5f158096be fix: golangci lint with max -> maxConn 7 months ago
shirou 6bdbf65126 [process]: Introduce DiskReadBytes on process which shows Disk IO only. 10 months ago
shirou 85f5f3a8e2 process.Uids and process.Gids are now return uint32 10 months ago
Sergey Chernomorets aace5e9d8f Groups in /proc/PID/status has type uint32.
Fix error of parser:
> error get info about worker process status 3150292: strconv.ParseInt:
> parsing "4294967293": value out of range

$ grep Groups /proc/self/status
Groups: 20001 [...] 4294967293
10 months ago
shirou bc060cc227 add SPDX License, remove old build tag, and replace import 10 months ago
shirou b10acd4894 [host]: add EnableBootTimeCache function 1 year ago
cui fliter 9aa4e7a744 fix some comments
Signed-off-by: cui fliter <imcusg@gmail.com>
2 years ago
Ville Skyttä 1e56c6f421 Spelling and grammar fixes 3 years ago
Ville Skyttä 0306525d78 [process] implement ParentWithContext using PpidWithContext
Removes need for redundant ParentWithContext implementations. It had led
to it being unsupported on FreeBSD and OpenBSD even though
PpidWithContext was available for them, and different implementations
for getting the parent info used in ParentWithContext and
PpidWithContext on Darwin and Linux.
3 years ago
Matthieu MOREL b673968d5d
enable errorlint linter 3 years ago
shirou d2e27c1712 fix dependabot v2 deletion. 3 years ago
shirou 0969c9436b delete v2 directory, move v3 to top #1078 3 years ago
Max Altgelt b02b92e16b
feat: Add support for environment variable read
Add support (for Linux and Windows for now) for reading the
environment variables of a process, with a similar syntax to
os.Environ().
For Windows, this includes some refactoring for clean access to the
RTL_USER_PROCESS_PARAMETERS structure which points to the command
line and the environment variables.
4 years ago
Mya cb512c8500 simplify mutex usage 4 years ago
Paweł Zuzelski 17c03b3b2d Clarify the godoc of the Children function.
The previous godoc string was slightly confusing and only described information that can be deduced from the function signature.
4 years ago
shirou a9a6146c93 [process] fix MemoryInfo comment. remove Swap
fixes #1012
4 years ago
AtakanColak 13602a3824 fix ppid cache race condition #964 4 years ago
Sergey Vinogradov 065e609cbf Refactor "process" package
* All context-less wrapping functions (the ones without WithContext
suffix) were moved into process.go since they all are the same.
* Call context is now passed to all underlying functions in
*WithContext() functions.
* All common *BSD bits were moved to process_bsd.go.
* Process.Tgid() method lacked a WithContext counterpart, so
Process.TgidWithContext() was added for uniformity.
* NewProcessWithContext() function was added since NewProcess() is
used a lot throughout the module, and there is no way to pass a
context to it.

This is a part of #761 effort.
4 years ago
ninedraft 34df4904f6 use cancelable sleep in cpu.PercentWithContext and process.Process.PercentWithContext 5 years ago
shirou 7e94bb8bcd
Merge pull request #775 from TakayukiBGoto/add_additional_gids_support
[Process] Implement Groups() to get additional gids.
5 years ago
Lomanic e34a731c69 [process] Fix #773 remove data race in NewProcess
Reproduction case https://github.com/shirou/gopsutil/issues/773#issuecomment-554723678
5 years ago
TakayukiB Goto a93796494b [Process] Define the Groups() only once 5 years ago
Laurent Sesques b3cfb9abc3 Revert "[process] Fix #599 cap percent values returned by *Percent() between 0 and 100"
This reverts commit f4e23559a2.
Fixes #755
5 years ago
TakayukiB Goto f55f202e81 [Process] Implement Groups() to get additional gids. 6 years ago
Lomanic 547679f88e [process] Fix #760 implement IsRunning by checking process with same PID has same CreateTime as current process 6 years ago
Lomanic 3eefe64948 [process] Fix #752 sort PIDS returned by process.Pids() 6 years ago
Lomanic 3465186bca [process] Fix #729 check process existence in NewProcess() 6 years ago
shirou 3ad4fbbb0c
Merge pull request #715 from Lomanic/issue599process
[process] Fix #599 cap percent values returned by *Percent() between 0 and 100
6 years ago
Lomanic f4e23559a2 [process] Fix #599 cap percent values returned by *Percent() between 0 and 100 6 years ago
Lomanic 5b15bc623c [process][posix] Fix #607 check pid existence with a signal instead of listing every pids
Reference 0d6b91e916/lockfile_unix.go
6 years ago
shirou 457f04671d [process] move PageFaultsStat to process.go 6 years ago
shirou 98c84ed30a [process]: move HWM to MemoryInfo
at least FreeBSD and Darwin has HWM.
6 years ago
Lomanic 878e0a701b Fix #596 Implement process.Background and process.Foreground functions 6 years ago
shirou 26a4a2f995 [process]: move ErrorNoChildren to platform independent. 7 years ago
Laurie Clark-Michalek 413cb32b6c Use static initialisation for invoke instances, instead of init funcs
The order of init function execution is dependant on the order that the
source files are passed to the compiler. This causes issues when
building under other build systems, such as bazel or buck, as they are
not guarenteed to maintain the same file order as the default go tool.
7 years ago
shirou cd61c36c4f
Merge branch 'master' into feature/add_context_support 7 years ago
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. 7 years ago
shirou 4c73494c78 Add WithContext functions. 7 years ago
Leonid Podolny 4269f19b1b process.go: reformat whitespaces to keep gofmt happy 8 years ago
Kemal Hadimli 826e63acbc Never divide by zero 8 years ago
Kemal Hadimli a3144a6850 Remove parens 8 years ago
Kemal Hadimli 696e1e0123 Fix NaN percentage if process was created too soon 8 years ago
shirou a452de7c73 Merge pull request #346 from phemmer/rlimit-current
add current values to rlimit retrieval
8 years ago
Aditya Choudhary (c) 533161c2ed added funtion for calculation of CPU usage percentage of a process 8 years ago
Patrick Hemmer 60c32eb847 add current values to rlimit retrieval 8 years ago
Vyacheslav Kuznetsov a35c32b028 Commented the constants origin. 8 years ago
Vyacheslav Kuznetsov 4de4e17f06 Added limit constants. Implemented function to parse process limits from /proc. 8 years ago