Commit Graph

106 Commits (696bb11b1e958e31d7066414d0e404a3c0b130db)

Author SHA1 Message Date
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
shirou dcac9d9b01 [process][windows] fix release handle 3 years ago
mmorel-35 1e6b445a8a gofumpt 3 years ago
mmorel-35 eb5f6203d8 gofmt 3 years ago
shirou 0969c9436b delete v2 directory, move v3 to top #1078 3 years ago
kestrelcjx a0b6077502 chore(process): change the return value 3 years ago
kestrelcjx 3b61bb2833 chore(process): add ctx.Done() to break select 3 years ago
kestrelcjx db054ec106 fix(process): fix the bug that the program is hung when getting the file name 3 years ago
shirou 0ce33dbe64
Merge pull request #1166 from easyops-cn/kestrel/process
feat(process): implement the 'OpenFilesWithContext' function of the windows system
3 years ago
Max Altgelt a4679b798b
feat: Add support for Cwd() on Windows 3 years ago
shirou 703175c3fb [v2][process][windows] fix Kill causes DuplicateHandle error 3 years ago
kestrel 3dabe50107 feat(process): implement the 'OpenFilesWithContext' function of the windows system 3 years ago
Max Altgelt d07af877ef
chore: Drop PROCESS_QUERY_INFORMATION support
PROCESS_QUERY_INFORMATION was used for compatibility reasons with
Windows XP / Server 2003. Both are no longer supported in Golang
and haven't been for a while (since Go 1.11). It should be safe
to drop this flag. PROCESS_QUERY_LIMITED_INFORMATION supports
PPL process such as LSASS, which are not queryable without this
change.
4 years ago
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