[systemd-devel] lighttp unit - graceful reload of configfiles by sending signal to $MAINPID

Alexander E. Patrakov patrakov at gmail.com
Tue Jan 11 07:11:29 PST 2011


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


More information about the systemd-devel mailing list