Commit Graph

126 Commits (master)

Author SHA1 Message Date
Mingyang Zheng b59facf6aa Since Windows does not distinguish between Major and Minor faults, all faults are treated as Major 1 week ago
Mingyang Zheng a2f71c4078 Since Windows does not distinguish between Major and Minor faults, all faults are treated as Major 1 week ago
Mingyang Zheng 0be0ec4e46 merge 1 week ago
Romain Marcadier 5da36ee6c8
fix: CmdlineSlice[WithContext] incorrect on Windows 3 weeks ago
Matthieu MOREL 9ce2ec161e chore: enable golangci-lint on Windows and MacOS
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
1 month ago
Mingyang Zheng 122878c79b feat(process_windows): Support collecting PageFault count in Windows 2 months ago
NitroCao fcdd277935 fix: release process after os.FindProcess() 6 months ago
huang 462736cb8b add comment for NumFDsWithContext 6 months ago
huang cbc32afb65 implement NumFDs for Windows 6 months ago
shirou 5f158096be fix: golangci lint with max -> maxConn 7 months ago
shirou 85f5f3a8e2 process.Uids and process.Gids are now return uint32 10 months ago
Sergey Chernomorets aace5e9d8f Groups in /proc/PID/status has type uint32.
Fix error of parser:
> error get info about worker process status 3150292: strconv.ParseInt:
> parsing "4294967293": value out of range

$ grep Groups /proc/self/status
Groups: 20001 [...] 4294967293
10 months ago
shirou bc060cc227 add SPDX License, remove old build tag, and replace import 10 months ago
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