Max Altgelt
5f61473ffd
fix: Correct UNICODE_STRING64 definition
...
Correct the UNICODE_STRING64 definition. The length is only
16 bits, followed by 16 bit max length and 32 bit padding.
4 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
Lomanic
62d8920abb
[process][windows] Fix #714 call OpenProcess with PROCESS_QUERY_INFORMATION on WinXP
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
shirou
b94f262e7d
Merge pull request #949 from boogie-byte/vet-target
...
Add "vet" target to the Makefile
4 years ago
Sergey Vinogradov
8ff2ab3187
Add "vet" target to the Makefile
...
Making the "vet" target will run "go vet ./..." for each supported
GOOS.
Also, some of the warnings produced by go 1.15 vet were mitigated.
4 years ago
Atakan Çolak
7cc8d3f711
cache ppid in windows
5 years ago
Simon Thoby
04a6f81e9f
fix an invalid shift in windows processes name UTF16 conversion
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
Merwan Ouddane
f459195bc0
[process][windows] implement suspending and resuming with ntdll library
5 years ago
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
TakayukiB Goto
a93796494b
[Process] Define the Groups() only once
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
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