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
WAKAYAMA Shirou
cbd943016a
process[windows]: implement CreateTime.
2015-09-03 21:59:24 +09:00
WAKAYAMA shirou
64357f04e7
use StackExchange/wmi instead of invoking wmic process.
...
Note: This may not work on some old Windows XP.
2015-04-20 00:05:31 +09:00
WAKAYAMA Shirou
79f4358f65
process: Exe, Cmdline and Name implemented in windows by using wmic
2015-03-20 23:56:46 +09:00