Re: [systemd-devel] Q: logrotate and "systemctl kill -s HUP ..."

2020-09-30 Thread Mantas Mikulėnas
On Wed, Sep 30, 2020 at 11:24 AM Ulrich Windl <
ulrich.wi...@rz.uni-regensburg.de> wrote:

> Hi!
>
> I have a problem with logrotate: My postrotate command does not seem to
> send a HUP signal. However the files are rotated.
> I'm using this (not preferred way, I know):
>
> ...
> postrotate
> test -s '/var/run/iotwatch-LOC1/iotwatch-LOC1.pid' &&
> systemctl kill -s HUP --kill-who=main iotwatch@LOC1.service
> endscript
> ...
>
> I've verified that the PID file exists (just rebooted the server a few
> minutes ago):
> # ll /var/run/iotwatch-LOC1/iotwatch-LOC1.pid
> -rw-r--r-- 1 root root 5 Sep 30 10:07
> /var/run/iotwatch-LOC1/iotwatch-LOC1.pid
>

Do you need to check for it in the first place?

Does the same command work from interactive CLI?


>
> My service would log the arrival of any HUP signal, but it didn't. Also in
> syslog I could not find any error message related to "systemctl kill".
> What might be wrong?
>
> My service is using ExecStartPre, ExecStartPost, and ExecStart. Could
> systemd be confused about "--kill-who=main" then?


--kill-who=main means the signal will be sent to the "main" process that
was started from ExecStart (shown as "Main PID:" in systemctl status).

The more preferred way of doing this is to have "ExecReload=/bin/kill -HUP
$MAINPID" and then `systemctl reload foo.service`.

Sending HUP to ExecStartPre and ExecStartPost doesn't make sense, since
those are supposed to be short-running commands – they are not allowed to
actually *have* daemons.

-- 
Mantas Mikulėnas
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] Q: logrotate and "systemctl kill -s HUP ..."

2020-09-30 Thread Ulrich Windl
Hi!

I have a problem with logrotate: My postrotate command does not seem to send a 
HUP signal. However the files are rotated.
I'm using this (not preferred way, I know):

...
postrotate
test -s '/var/run/iotwatch-LOC1/iotwatch-LOC1.pid' &&
systemctl kill -s HUP --kill-who=main iotwatch@LOC1.service 
endscript
...

I've verified that the PID file exists (just rebooted the server a few minutes 
ago):
# ll /var/run/iotwatch-LOC1/iotwatch-LOC1.pid
-rw-r--r-- 1 root root 5 Sep 30 10:07 /var/run/iotwatch-LOC1/iotwatch-LOC1.pid

My service would log the arrival of any HUP signal, but it didn't. Also in 
syslog I could not find any error message related to "systemctl kill".
What might be wrong?

My service is using ExecStartPre, ExecStartPost, and ExecStart. Could systemd 
be confused about "--kill-who=main" then?

Regards,
Ulrich



___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel