Commit Graph

80 Commits (b806400ff09abf84af672c7ac5cee44f7d1b8297)

Author SHA1 Message Date
Mauro Leggieri 7783e1d58e Added retrieval of OS platform to determine better a process platform. 5 years ago
Mauro Leggieri 00957cfedc Fixed slow command line retrieval on Windows 5 years ago
Lomanic 1c8ddacaf7 [process][windows] Use win32 API in process.IOCounters() instead of slow WMI call #250 5 years ago
MashaSamoylova 88d9e38aca Change access right in GetProcessTimes call 5 years ago
Tobias Klauser a61c905252 Use golang.org/x/windows functions instead of github.com/shirou/w32
All functions used from github.com/shirou/w32 are also available from
golang.org/x/sys/windows which is already used in other places. Convert
the remaining usages to use the functions from x/sys/windows.
5 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 f5131dc333 [process][windows] Implement Connections() using net.ConnectionsPid() 6 years ago
Lomanic 3eefe64948 [process] Fix #752 sort PIDS returned by process.Pids() 6 years ago
Lomanic 58dc3b28aa [process][windows] Amend last commit, don't wrap err in NumThreads() 6 years ago
Lomanic 9a445d5f6a [process][windows] Use win32 API in process.NumThreads() instead of slow WMI call 6 years ago
Lomanic 3465186bca [process] Fix #729 check process existence in NewProcess() 6 years ago
Lomanic 4a95469fc9 [process][windows] Fix #607 check pid existence with OpenProcess+GetExitCodeProcess
Reference https://stackoverflow.com/a/600217
6 years ago
Lomanic 4ad0300e1e [process][windows] Remove magic numbers and useless constants 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 14ba67b0ab
Merge pull request #706 from Lomanic/windows-process-nice
[process][windows] Use win32 API in process.Nice() instead of slow WMI call
6 years ago
Lomanic f036e8b9e8 [process][windows] Deduplicate repeated code in CreateToolhelp32Snapshot related functions 6 years ago
Lomanic cf9aa4a8ec [process][windows] Use win32 API in process.Nice() instead of slow WMI call
Convert priority classes values to their WMI equivalent for backward
compatiblity.
6 years ago
Lomanic 47323f9ad5 [process][windows] Fix #586 use win32 API in process.Exe() instead of slow WMI call
This is faster by a factor of 100.

References:
5f4287d17f/psutil/_pswindows.py (L221)
921870d540/psutil/_psutil_windows.c (L1211)
921870d540/psutil/_psutil_windows.c (L626)
6 years ago
Lomanic 41e774419f
Merge pull request #643 from wcc526/master
Update process_linux.go for Add process ConnectionsMax
6 years ago
wcc526 462e0f6c2f Update process_linux.go for Add process ConnectionsMax 6 years ago
shirou 48b37fa45e
Merge pull request #616 from nefeli/linux_page_faults
[process][linux] Export process page fault info
6 years ago
Lomanic 4104adff3e [process][windows] Fix #466 add SeDebugPrivilege to current process 6 years ago
Lomanic a5ace91cce [process][windows] Propagate context internally 6 years ago
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.
6 years ago
David Naylor 414c76f159 [process][linux] Export process page fault info
Add a function for retrieving page fault counts from /proc/[pid]/stat on
Linux.
6 years ago
Lomanic 8002bddf3f Merge branch 'master' into issue596 6 years ago
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.
6 years ago
Lomanic 878e0a701b Fix #596 Implement process.Background and process.Foreground functions 6 years ago
Lomanic 82b8111d04 [process][darwin] Fix #573 use Pids() to get processes in Processes() 7 years ago
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
7 years ago
Lomanic 6ddbb8c5d8 [process][windows] Reuse Ppid() in Parent(), don't use slow wmi call 7 years ago
Michal Rostecki 91ac1d66ac process: Check for error objects 7 years ago
Michael Schurter b11d0a7942
typo: wich -> which 7 years ago
sada 8dd42707e2 windows: fix WithContext functions
set timeout only if parent context doesn't set.
7 years ago
shirou 6a368fb7cd [process]: add ProcessesWithContext. 7 years ago
shirou cd61c36c4f
Merge branch 'master' into feature/add_context_support 7 years ago
Nick Kirsch fb24c70d36 Add ErrNotImplementedError for Tgid support. 7 years ago
shirou 4c73494c78 Add WithContext functions. 7 years ago
shirou 27389f01ec
Merge pull request #459 from shirou/feature/implements_process_kill_on_windows
[process]windows: implements process.Kill using os/exec
7 years ago
leaf 65598d98cc To prevent hang if wmi.Query hangs, add a context-aware wrapper for it. 7 years ago
WAKAYAMA shirou f5e19d7e16 [process]windows: implements process.Kill using os/exec 7 years ago
Lomanic 00bdebfce7 Use getFromSnapProcess to get process Name and Ppid on Windows instead of slow WMI 7 years ago
Lomanic da12f10f63 Use w32.EnumerateProcesses instead of slower wmi in windows process.Processes() 7 years ago
Lomanic c9a24cf2d0 Handle case in Windows process.Pids() where buffer is too small to handle that many processes returned by w32.EnumProcesses 7 years ago
Lomanic 0314bc81f3 Use w32.EnumProcesses to get pids on Windows in process.Pids() 7 years ago
tycho garen 08a382b207 make process.processes function public 7 years ago
mlkm b9ab45bcdd Implement Process.Times for Windows 8 years ago
John Liu d28c254aaf Improve performance of finding child processes on Windows 8 years ago
Leonid Podolny 7ee4a4c6ff Fix Threads() signature to better match python original 8 years ago
Leonid Podolny 7ad3836ad3 Implement Threads() for Linux 8 years ago