[core] improve detection of agent process from pid #2005
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.
Sometimes the agent fails to restart after a "hard" reboot because the pidfile
contains the pid of a non-datadog running process, and the only check the agent
did before this commit was to check if the pid was associated with a running
process.
This commit implements a new function
is_my_process
which verifies on Linux if thepsutil.Process.cmdline
("command line this process has been called with") isthe good one (corresponding to the current executable). This function is used
instead of
pid_exists
whenpsutil
is installed and checks the pid containedin the pidfile, thus solving the above-mentioned problem.
I tested it on Mac (both dmg install and source install), and Debian.