11.01.2011 19:46, Marius Tolzmann wrote:

hi again..

On 01/11/11 11:51, Alexander E. Patrakov wrote:

If you also want graceful stop, you may want to add:

ExecStop=/bin/kill -INT $MAINPID

but this doesn't work, as lighttpd gets killed immediately. I don't know
why this happens.

have you tried KillMode=process here?

Yes.


Also, the "test config before reloading" feature still doesn't work
right. If I add this ExecReload line before the existing one:

ExecReload=/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf

then systemd will kill lighttpd-angel when the configuration file is
bad. It should instead complain to syslog and do nothing with the
running instances of lighttpd and lighttpd-angel.

The behaviour seems to be undocumented (at least i havn't found anything) if the ExecReload= command fails.

But if a reload fails it makes sense to me to stop a service because this service wouldn't be in the state the caller wants it to be.

In this case, it doesn't make sense, because the service is still in a known state (the old state) that is still better than the non-running state from the viewpoint of avoiding downtime.

There is no way you can notify systemd that the failed reload attempt was just a test prior to executing the real reload command (e.g. there is no ExecReloadPre or the like). (If a service keeps running I won't check syslog..)

When the config is bad and the additional ExecReload line is present, systemd does tell me that reload failed. So I have a good reason to check syslog, and even am suggested by systemd to do so.


At last: Isn't that something lighttpd should take care off? Or the user should test before issuing a reload? Or a small script can do?

Isn't one of the points of systemd to eliminate such small scripts?

--
Alexander E. Patrakov
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to