[pmg-devel] [PATCH pmg-api v5 02/11] pmg-smtp-filter: move pid file into /run/pmg-smtp-filter
Stoiko Ivanov
s.ivanov at proxmox.com
Thu Aug 14 02:10:11 CEST 2025
the pmg-smtp-filter is started by a few of our internal tests - which
seems to break due to this change (looks like systemd removes the
RuntimeDirectory when the service stops...)
If in doubt - just create it when starting?
On Fri, 4 Apr 2025 15:14:29 +0200
Maximiliano Sandoval <m.sandoval at proxmox.com> wrote:
> We use systemd's RuntimeDirectory to ensure the directory exists when needed.
>
> We also set $opt_pidfile using PIDFILE, see
> https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#%24PIDFILE.
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
> ---
> debian/pmg-smtp-filter.service | 3 ++-
> src/PMG/Utils.pm | 2 +-
> src/bin/pmg-smtp-filter | 2 +-
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/debian/pmg-smtp-filter.service b/debian/pmg-smtp-filter.service
> index cbf2d6f3..c887dc2d 100644
> --- a/debian/pmg-smtp-filter.service
> +++ b/debian/pmg-smtp-filter.service
> @@ -11,10 +11,11 @@ ExecStart=/usr/bin/pmg-smtp-filter
> KillMode=mixed
> TimeoutStopSec=40
> ExecReload=/bin/kill -HUP $MAINPID
> -PIDFile=/run/pmg-smtp-filter.pid
> +PIDFile=/run/pmg-smtp-filter/pmg-smtp-filter.pid
> Type=forking
> Restart=on-abort
> RestartSec=10
> +RuntimeDirectory=pmg-smtp-filter
>
> [Install]
> WantedBy=multi-user.target
> diff --git a/src/PMG/Utils.pm b/src/PMG/Utils.pm
> index 3e7adbb6..07a6c9be 100644
> --- a/src/PMG/Utils.pm
> +++ b/src/PMG/Utils.pm
> @@ -1515,7 +1515,7 @@ sub get_pg_server_version {
>
> sub reload_smtp_filter {
>
> - my $pid_file = '/run/pmg-smtp-filter.pid';
> + my $pid_file = '/run/pmg-smtp-filter/pmg-smtp-filter.pid';
> my $pid = PVE::Tools::file_read_firstline($pid_file);
>
> return 0 if !$pid;
> diff --git a/src/bin/pmg-smtp-filter b/src/bin/pmg-smtp-filter
> index 32bad7b8..fcaaffc5 100755
> --- a/src/bin/pmg-smtp-filter
> +++ b/src/bin/pmg-smtp-filter
> @@ -80,7 +80,7 @@ if (!GetOptions(
> exit (-1);
> }
>
> -$opt_pidfile = "/run/${prog_name}.pid" if !$opt_pidfile;
> +$opt_pidfile = $ENV{'PIDFILE'} if !$opt_pidfile;
>
> my $max_servers = 1;
> my $min_servers = 1;
More information about the pmg-devel
mailing list