Fix systemd main pid handling when running with --log #4190
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.
Fixes regression introduced in #4115, reported by @kralicky
Proposed Changes
Using MAINPID breaks systemd's exit detection, as it stops watching the
original pid, but is unable to watch the new pid as it is not a child
of systemd itself. The best we can do is just notify when execing the child
process.
We also need to consolidate forking into a single place so that we don't
end up with multiple levels of child processes if both redirecting log
output and reaping child processes.
Types of Changes
bugfix
Verification
--init
flag; note that it does not leave behind zombie containerd-shim processes.--log
flag; note that logs are written to the specified log file.--log
flag; note that it is restarted properly when killed.Linked Issues
User-Facing Change
Further Comments