Re: Q: logrotate and "systemctl kill -s HUP ..."

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 30, 2020 at 11:24 AM Ulrich Windl <Ulrich.Windl@xxxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux