[centos][init] Wait for supervisord to stop before kill -9
ing it
#2349
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.
Without this fix, the
stop
command (->killproc
) would only wait for0.1 second before
kill -9
ing supervisord, so if the collector forinstance took more than that to stop, a subsequent
start
wouldfail because we'd try to start a collector before the old one had died.
This fix uses an option of
killproc
so that it waits for 30 seconds(similar to our init script on debian) before
kill -9
ingsupervisord (which is plenty of time since supervisord
kill -9
sthe processes that haven't stopped after 10 seconds, by default).
Without the fix, here is what can happen when we restart the agent (
supervisord.log
, I removed the log lines about jmxfetch and go-metro since they're not relevant):(and if the old collector process still hasn't died after 3 start attempts to start a new collector process, supervisor gives up)
With the fix:
Tested successfully on CentOS 5, 6 and 7