Gracefully stop a service with service stop #3568
Open
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.
- What I did
Make sure the "service stop" commands tries to gracefully stop the task. Currently the task
was immediately killed, this is especially a problem if e.g. the service is a docker in docker service.
For docker in docker, docker won't try to stop all the containers in it gracefully, furthermore it won't cleanup
it's pid file and the service can't be restarted anymore.
- How I did it
"service stop" now first sends a SIGTERM to the service task and waits for it to be
stopped. If it doesn’t stop in the time specified, a SIGKILL will be send to the task.
This is analogous how "docker stop" works.
- How to verify it
Use docker in docker as a service, start e.g. caddy container in docker and tail the log of the caddy container. Then
in another session stop the service with "service stop docker" and verify that the caddy container gets
stopped gracefully.
- Description for the changelog
Gracefully stop a service with service stop
- A picture of a cute animal (not mandatory but encouraged)