Op 12/18/2017 om 1:51 AM schreef Garth Corral:
> Hi, all
>
> I’m new to the list but not to dovecot.  I’ve been using it in a basic 
> configuration for some time, but finally decided to tweak my deployed system 
> to take advantage of some more dovecot features.  In particular I’m trying to 
> set up pigeonhole to implement spam retraining with imapsieve.  All of this 
> is with dovecot 2.2.31 (65cde28) and pigeonhole 0.4.19.
>
> Before going any further let me start by saying that I have gotten all of 
> this to work.  It works when I can get dovecot to start up, that is.  My 
> configuration is pretty much straight from the docs, with a few tweaks for my 
> particular needs.  I’m trying to set up a pipe service using 
> sieve-extprograms, and the relevant part of my config looks like this:
>
> plugin {
>
>   sieve_pipe_input_eol = lf
>
>   sieve_pipe_socket_dir = sieve-pipe
>   sieve_filter_socket_dir = sieve-filter
>   sieve_execute_socket_dir = sieve-execute
>
>   sieve_pipe_bin_dir = /usr/local/libexec/dovecot/sieve-pipe
>   sieve_filter_bin_dir = /usr/local/libexec/dovecot/sieve-filter
>   sieve_execute_bin_dir = /usr/local/libexec/dovecot/sieve-execute
> }

Define either *bin_dir or *socket_dir; not both. These are two
alternative ways of running scripts, either using a direct fork() or
through a script service, respectively.

https://wiki.dovecot.org/Pigeonhole/Sieve/Plugins/Extprograms

> service sieve-train-ham {
>   executable = script /usr/local/libexec/dovecot/sieve-pipe/train-ham.sh
>
>   # Needs access to dspam config and lockfiles.
>   user = dspam
>
>   # socket name is program-name in Sieve (without sieve-pipe/ prefix)
>   unix_listener sieve-pipe/train-ham {
>   }
> }

>
> It’s my understanding from reading the docs that the sieve_pipe_socket_dir 
> specifies a directory that is relative to base_dir, which is the default 
> /var/run/dovecot in my case.  The issue I’m having is that dovecot will not 
> start, and spews the following errors:
>
> dovecot: master: Error: bind(/var/run/dovecot/sieve-pipe/train-ham) failed: 
> No such file or directory
> dovecot: master: Fatal: Failed to start listeners

First of all, this directory does not strictly need to be relative to
/var/run/dovecot. It can be an absolute path to somewhere else.

The relative directories are indeed not currently created implicitly.
Hmm, we will discuss this internally.

> Once dovecot fails startup, it leaves /var/run/dovecot around and if I 
> manually create the sieve-pipe directory there it will start up, create the 
> sockets there and everything works as intended subsequently.  The problem, 
> though, is that on normal shutdown all of /var/run/dovecot goes away and the 
> at the next startup it fails to start again.  Needless to say this isn’t 
> great for unintended reboots, etc.
>
> So, can anyone see anything obvious that I’m doing wrong?  I’m just assuming 
> that dovecot should create the needed subdir since I can’t find anything in 
> the docs to suggest a way to create it otherwise.  I’ve tried all I can think 
> of at the moment to try to remedy this without success.  I’m happy to provide 
> additional details as needed to try to track this down.
>


Regards,

Stephan.

Reply via email to