[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