Mark service dirty if the command line args have changed #333
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.
This fixes
initctl reload
correctly restarting all daemons that have new command line arguments.Previously command line arguments changes were only acted upon if the service was explicitly reloaded using
initctl reload myservice
since it blindly sets thesvc->dirty
flag.When checking if a service should be restarted,
svc_is_changed()
checks for thesvc->dirty
flag, and then only after that willsvc_sighup()
look for thesvc->args_dirty
flag. Hence a difference in command line arguments would not result in a service being restarted.finit/src/service.c
Lines 2289 to 2293 in 9887003
You could also add the
|| svc->args_dirty
check into thesvc_is_changed()
, but I think it makes sense this way.