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