[process] Fix #607 properly check PID existence #713
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix #607
Use signal(0) on posix-compliant platforms (linux freebsd openbsd darwin)
Use OpenProcess+GetExitCodeProcess on windows
Tested on linux, windows (10, broken on XP), darwin, openbsd, freebsd
Regarding WinXP, this is failing because of PROCESS_QUERY_LIMITED_INFORMATION being introduced in in Vista. Calling
windows.OpenProcess
withwindows.PROCESS_QUERY_INFORMATION
works properly on WinXP (hinting that every calls to OpenProcess with PROCESS_QUERY_LIMITED_INFORMATION in gopsutil fail on WinXP). Handling this (opening process with right parameter according to Windows version) would complicate a little bit the code in process_window.go (while being prudent not too slow down gopsutil functions), I'm not sure if we should bother so much about WinXP now that it's deprecated for quite a few years.