Jason Newman
15f7946fcb
Windows, read all pids if there are more than 1024 pids.
...
Convert bytes read to number of uint32s that were read.
1 year ago
Lomanic
980cc82c08
[process][windows] Retrieve process name as basename of executable
...
We align ourself with psutil
8e4099d9f0/psutil/_pswindows.py (L749-L759)
Benchmarks show vast improvements
go test -run=BenchmarkProcessName -bench=BenchmarkProcessName ./process
goos: windows
goarch: amd64
pkg: github.com/shirou/gopsutil/v3/process
cpu: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
BenchmarkProcessName-4 180 6564033 ns/op
BenchmarkProcessNameViaExe-4 22111 51153 ns/op
PASS
ok github.com/shirou/gopsutil/v3/process 3.914s
Fixes #1368
2 years ago
Lomanic
bd4529a7cc
[process][windows] Refator a tiny bit is32BitProcess() function to be more idiomatic Go
2 years ago
tienthanh1993
6bc339626b
fix(process,windows): compare len(cwd) to an incorrect value
...
process/process_windows.go#L411 len(cwd) need compare to userProcParams.CurrentDirectoryPathNameLength instead of userProcParams.CurrentDirectoryPathAddress
3 years ago
Lomanic
7501387fc1
[process][windows] Use WaitForSingleObject with a 0 delay in PidExistsWithContext
...
Reference https://stackoverflow.com/a/6493793
Fixes #1298
3 years ago
paul
3cd259698f
fix(process): fix OpenFilesWithContext panic problem
3 years ago
Ville Skyttä
1e56c6f421
Spelling and grammar fixes
3 years ago
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