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