Dovecot配额警告可执行文件无法login到标准输出

我正在使用s6-overlay在Docker容器内运行基于数据库的userdb和passdb的dovecot

一切运行良好。 现在我试着添加配额警告,并遇到了一个logging到/dev/stdout

错误信息

每当警告邮件应该发送我看到这个消息得到logging:

 Oct 28 10:27:01 quota-warning: Error: Can't open log file /dev/stdout: No such device or address Oct 28 10:27:01 quota-warning: Fatal: master: service(quota-warning): child 460 returned error 75 

相关的dovecotconfiguration

我已经设置了日志path到/dev/stdout让S6为我抓取日志。 我在手册后添加了一个配额警告脚本。 这是相关的configuration:

 log_path = /dev/stdout first_valid_uid = 100 mail_uid = vmail mail_gid = dovecot mail_privileged_group = dovecot mail_home = /var/mail/domains/%d/%n mail_location = maildir:/var/mail/domains/%d/%n** plugin { quota = maildir:User quota quota_exceeded_message = Storage quota for user %u exceeded quota_rule2 = Trash:storage=+100M quota_grace = 10%% quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is full" quota_warning = storage=85%% quota-warning 85 %u %d } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail group = dovecot unix_listener quota-warning { user = dovecot mode = 0666 } } 

配额警告脚本

 #!/bin/sh PERCENT=$1 USER=$2 DOMAIN=$3 cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: no-reply@$DOMAIN Subject: Qutoa warning Your mailbox quota is at $PERCENT%. EOF 

S6鸽子服务

启动dovecot的S6 run脚本非常简单:

 #!/bin/sh exec /usr/sbin/dovecot -F -c /etc/dovecot/dovecot.conf 

来自/dev/stdout日志输出通过logs/run脚本捕获:

 #!/bin/sh exec logutil-service /logs/dovecot 

我试过了

当我将log_path更改为像/tmp/dovecot.log这样的静态文件时,所有东西都可以正常工作。 但那不是我想要的。

所以当我看到它没有为配额警告脚本创build的/dev/stdout ,我不知道如何解决这个问题。

logging:通过/dev/stdoutloggingdovecot的其他所有内容。

更新:我也可以从容器内的shell手动运行quota-warning.sh脚本,没有问题。 它将一条警告消息放入用户邮箱。