[systemd-devel] [PATCH] core: notify triggered by socket of a service
lennart at poettering.net
Tue Jul 16 18:01:55 PDT 2013
On Fri, 12.07.13 09:19, Umut Tezduyar (umut at tezduyar.com) wrote:
> >> + if ((se->state == SERVICE_DEAD ||
> >> + se->state == SERVICE_STOP ||
> >> + se->state == SERVICE_STOP_SIGTERM ||
> >> + se->state == SERVICE_STOP_SIGKILL ||
> >> + se->state == SERVICE_STOP_POST ||
> >> + se->state == SERVICE_FINAL_SIGTERM ||
> >> + se->state == SERVICE_FINAL_SIGKILL ||
> >> + se->state == SERVICE_AUTO_RESTART) &&
> >> + se->socket_fd < 0)
> >> + socket_notify_service_dead(s, false);
> >> +
> >> + if (se->state == SERVICE_RUNNING)
> >> + socket_set_state(s, SOCKET_RUNNING);
> > This doesn't work for socket activated/instantiated services. I should
> > be able to detect if a service is instantiated..
> Lennart, do you have a solution for this that I can take in and
> re-send the patch? It works great for socket activated services that
> when service is running, the triggered by socket is set to running too
> but it is not working for instantiated services. For instantiated
> services, socket needs to stay in "listening" stay all the time.
I am not really grokking the problem, but I figure the entire trigger
callback should be skipped (with an early return) if s->accept is
set. Are you looking for something else?
Lennart Poettering - Red Hat, Inc.
More information about the systemd-devel