Am 24.08.2011 20:40, schrieb Adam Williamson:
On Wed, 2011-08-24 at 19:59 +0200, Lennart Poettering wrote:
> On Wed, 24.08.11 10:05, Adam Williamson (awilliam(a)redhat.com) wrote:
>>> FWIW, I do think that there may be use-cases for socket activation of a
>>> database. I'd like to support the option ... the problem is to do so
>>> without breaking existing, expected behaviors.
>> It was noted up-thread that systemd can tell you whether the underlying
>> daemon is running or not, though I guess that doesn't tell you whether
>> it's entirely in a functional state. You could do a two-stage thing:
>> check with systemd whether the daemon is running, and ping it if so?
> systemd will put services only in "running" state if they are fully up
> and told systemd so. They'll be in "starting" until that time. All we
> need for this is that services either use Type=forking and double
> fork+exit in parent, or use Type=notify and sd_notify("READY=1") as soon
> as they are fully up.
Sure, but it would be possibly for mysql to be 'fully up' under
systemd's definition (i.e. the mysqld process has successfully executed
and is running happily) while not actually being properly configured to
serve external requests, right? Bad mysql config, firewall in the way,
whatever...point is that systemd can't really know for sure that the
underlying process is 100% working, only that it's _running_
and that is why you need only socket-activation for the unix-socket
to provide relieable system-boot with activation and you nagios will
check over TCP and so has NOTHING really NOTHING to do with systemd