core/service: if RefreshOnReload= is explicitly enabled, allow reload even without exec/notify-reload

This was originally brought up by @poettering. If the process
loads stuff on demand and flushes them out after each use,
or actively monitors file changes, they can be reloaded
by merely refreshing the resources.
This commit is contained in:
Mike Yuan
2026-02-10 21:54:13 +01:00
parent f385b3f3dd
commit 21292677f6
+4 -1
View File
@@ -3297,7 +3297,10 @@ static bool service_can_reload(Unit *u) {
Service *s = ASSERT_PTR(SERVICE(u));
return s->exec_command[SERVICE_EXEC_RELOAD] ||
s->type == SERVICE_NOTIFY_RELOAD;
s->type == SERVICE_NOTIFY_RELOAD ||
(s->refresh_on_reload_set &&
(service_get_effective_reload_extensions(s) ||
service_get_effective_reload_credentials(s)));
}
static unsigned service_exec_command_index(Unit *u, ServiceExecCommand id, const ExecCommand *current) {