1
0
mirror of https://github.com/shirou/gopsutil.git synced 2025-04-26 13:48:59 +08:00

107 Commits

Author SHA1 Message Date
Lomanic
e5ca4477a1 [process][windows] WIP #586 use win32 API in process.Exe but fallback on WMI
This method only lets a 32bit program get other 32bit processes exe path
and a 64bit program get other 64bit processes exe path, so we fallback to
the slow (but kind of reliable) WMI calls if we can't access to the other
process module.
2018-12-20 23:16:25 +01:00
David Naylor
414c76f159 [process][linux] Export process page fault info
Add a function for retrieving page fault counts from /proc/[pid]/stat on
Linux.
2018-12-13 16:19:40 -08:00
Lomanic
8002bddf3f Merge branch 'master' into issue596 2018-12-08 18:49:40 +01:00
Lomanic
6b539051d2 [process][windows] Use win32 API in process.Children() instead of slow WMI call
The CreateToolhelp32Snapshot+Process32First+Process32Next combo already
iterates over all processes, so it would be inefficient to enumerate all
processes with process.Processes() and then calling p.Ppid() on each of
them: we just use this combo to get all processes and their ppid in a
single iteration.

This is faster by a factor of 25 compared to the previous WMI call.
2018-11-18 20:22:18 +01:00
Lomanic
878e0a701b Fix #596 Implement process.Background and process.Foreground functions 2018-11-08 20:52:01 +01:00
Lomanic
82b8111d04 [process][darwin] Fix #573 use Pids() to get processes in Processes() 2018-09-01 16:17:19 +02:00
Lomanic
ef54649286 [windows] Use windows.NewLazySystemDLL to (possibly) prevent DLL hijacking
Might be useless because of https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-search-order#search-order-for-desktop-applications
but better be safe than sorry.

Ref: https://github.com/shirou/gopsutil/issues/570#issuecomment-413951653
2018-08-18 22:52:41 +02:00
Lomanic
6ddbb8c5d8 [process][windows] Reuse Ppid() in Parent(), don't use slow wmi call 2018-07-14 20:56:20 +02:00
Michal Rostecki
91ac1d66ac process: Check for error objects 2018-06-21 16:53:53 +02:00
Michael Schurter
b11d0a7942
typo: wich -> which 2018-02-27 11:27:49 -08:00
sada
8dd42707e2 windows: fix WithContext functions
set timeout only if parent context doesn't set.
2018-02-12 13:26:17 -08:00
shirou
6a368fb7cd [process]: add ProcessesWithContext. 2018-01-11 11:47:13 +09:00
shirou
cd61c36c4f
Merge branch 'master' into feature/add_context_support 2018-01-09 11:18:25 +09:00
Nick Kirsch
fb24c70d36 Add ErrNotImplementedError for Tgid support. 2018-01-05 11:37:36 -08:00
shirou
4c73494c78 Add WithContext functions. 2017-12-31 15:25:49 +09:00
shirou
27389f01ec
Merge pull request #459 from shirou/feature/implements_process_kill_on_windows
[process]windows: implements process.Kill using os/exec
2017-12-14 15:29:47 +09:00
leaf
65598d98cc To prevent hang if wmi.Query hangs, add a context-aware wrapper for it. 2017-11-20 10:13:27 -08:00
WAKAYAMA shirou
f5e19d7e16 [process]windows: implements process.Kill using os/exec 2017-11-18 22:43:54 +09:00
Lomanic
00bdebfce7 Use getFromSnapProcess to get process Name and Ppid on Windows instead of slow WMI 2017-11-12 21:59:17 +01:00
Lomanic
da12f10f63 Use w32.EnumerateProcesses instead of slower wmi in windows process.Processes() 2017-11-12 21:13:39 +01:00
Lomanic
c9a24cf2d0 Handle case in Windows process.Pids() where buffer is too small to handle that many processes returned by w32.EnumProcesses 2017-11-12 16:40:35 +01:00
Lomanic
0314bc81f3 Use w32.EnumProcesses to get pids on Windows in process.Pids() 2017-11-12 03:08:47 +01:00
tycho garen
08a382b207 make process.processes function public 2017-11-05 20:40:33 -05:00
mlkm
b9ab45bcdd Implement Process.Times for Windows 2017-10-13 16:17:51 +02:00
John Liu
d28c254aaf Improve performance of finding child processes on Windows 2017-10-06 12:23:54 -04:00
Leonid Podolny
7ee4a4c6ff Fix Threads() signature to better match python original 2017-10-04 15:38:01 -04:00
Leonid Podolny
7ad3836ad3 Implement Threads() for Linux 2017-10-04 15:38:01 -04:00
shirou
a452de7c73 Merge pull request #346 from phemmer/rlimit-current
add current values to rlimit retrieval
2017-08-31 11:58:10 +09:00
shirou
f6b70e303c Merge pull request #387 from tychoish/windows-data-collection
collect more data on windows
2017-07-26 22:36:00 +09:00
Derek Brown
a3ae2ed411 Add domain to username (rather than naked username) 2017-07-06 15:08:46 -07:00
tycho garen
d522bf5b7e collect more data on windows 2017-07-02 14:42:22 -04:00
Derek Brown
5157f03748 [windows] add implementation for process.Username() 2017-06-28 11:16:01 -07:00
Sean Chittenden
cb12fba4f4
windows.Syscall doesn't exist: use syscall.Syscall() 2017-06-03 08:07:30 -07:00
Sean Chittenden
3e79194fe2
windows.EINVAL doesn't exist, only syscall.EINVAL. 2017-06-03 07:48:40 -07:00
Sean Chittenden
635b971c0e
Move from the syscall package to the golang.org/x/sys/{unix,windows} 2017-06-02 13:51:00 -07:00
Patrick Hemmer
60c32eb847 add current values to rlimit retrieval 2017-06-01 16:38:44 -04:00
Nex
d44bd00182 Added Terminate() for Windows 2016-10-11 15:19:00 +02:00
Diptanu Choudhury
af4c8608c9 Casting the values of working set and page file to uint64 2016-06-22 16:22:37 -07:00
WAKAYAMA Shirou
ba34a3af8c [process]windows: add IO counters and fix CreateTime 2016-05-04 23:25:43 +09:00
WAKAYAMA Shirou
903277ce2f [process]windows: implement process.MemoryInfo (but no swap) 2016-05-04 22:39:44 +09:00
Shirou WAKAYAMA
613a8a90e1 fixed by golint. 2016-04-01 21:34:39 +09:00
Shirou WAKAYAMA
46ddd57c72 process has NetIOCounters and IOCounters. 2016-03-22 23:23:08 +09:00
Shirou WAKAYAMA
ea152ea901 [BREAKING CHANGE] rename functions to pass golint. ex) net.NetIOCounters -> net.IOCounters 2016-03-22 23:09:12 +09:00
Chris Gilling
8c186ae593 process: add CmdlineSlice for darwin + windows
darwin will not perform correctly if there are spaces in the actual
arguments, in which case a single argument will be reported as
multple. Some CGO would be needed to get around this I think.

I couldn't find any good documentation on how windows handles
command line arguments with spaces inside the actual arguments, so
this implementation merely just splits on spaces.
2016-02-28 19:49:50 -08:00
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.
2016-02-27 18:01:49 -08:00
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.
2016-02-16 20:22:04 +01:00
Shirou WAKAYAMA
d680853370 net,process[linux]: add process.NetIOCounter and net.NetIOCounterByFile. 2016-01-21 17:31:05 +09:00
Masayoshi Sekimura
3a1fa5dc80 format go program with go 1.5.2 "go fmt" 2016-01-09 16:17:21 -08:00
Shirou WAKAYAMA
7288e9a5af common[all]: add internal 2015-10-20 00:04:57 +09:00
WAKAYAMA Shirou
5c8a03100e process[windows]: take common function to get Win32_Processes. 2015-09-03 22:07:24 +09:00