AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 885828
Accepted
Farhan
Farhan
Asked: 2017-11-30 11:25:31 +0800 CST2017-11-30 11:25:31 +0800 CST 2017-11-30 11:25:31 +0800 CST

有没有办法在前台运行 Postfix?

  • 772

有没有办法在前台运行 Postfix?

我想在 docker 中将 Postfix 作为 PID 1 运行。我不想使用任何 bash shell、supervisorD 或任何包装器来启动它。

我只想知道是否有任何方法可以在前台启动它,以便我可以从“docker logs 'container-name'”检查它的日志

当我手动运行“postfix start”时,它会运行,然后在后台启动。有什么办法让它保持在前台?

谢谢

postfix
  • 5 5 个回答
  • 10742 Views

5 个回答

  • Voted
  1. Isaac Rosado
    2018-06-12T01:43:00+08:002018-06-12T01:43:00+08:00

    从 Postfix 3.3 版开始,您还可以使用postfix start-fg,根据文档:

    与 start 类似,但保持 master(8) 守护进程在前台运行

    它使事情变得更容易!

    • 20
  2. Alexandre Ellert
    2020-06-17T01:51:17+08:002020-06-17T01:51:17+08:00

    从 Postfix 3.3 开始,原生支持 docker。只需构建并运行这个 Dockerfile :

    FROM alpine:3
    
    RUN apk add --no-cache postfix postfix-pcre
    RUN echo "maillog_file = /dev/stdout" >> /etc/postfix/main.cf
    
    CMD ["/usr/sbin/postfix","start-fg"]
    
    • 8
  3. Best Answer
    webwurst
    2018-02-17T16:11:53+08:002018-02-17T16:11:53+08:00

    Postfix需要一个 syslog 守护进程来进行日志记录。有关Dockerfile 正在运行的 Postfix的简明示例,请参阅jessfraz/dockerfiles/postfix。

    这在容器中运行rsyslog,并以这样的方式启动Postfix:

    exec /usr/lib/postfix/master -c /etc/postfix -d 2>&1
    tail -F /var/log/mail.log
    
    • 5
  4. Miguel A. C.
    2017-12-07T04:18:27+08:002017-12-07T04:18:27+08:00

    如果我理解您的问题,您想在前台运行 postfix,以便将其日志发送到标准输出,您可以使用 docker 日志显示它们。

    您不能以将日志发送到标准输出的方式运行 Postfix。来自官方文档“Postfix daemon processes run in the background, and log issues and normal activity to the syslog daemon.”,因此 Postfix 使用 syslogd 来管理其日志,这是您无法避免的要求。

    由于 Docker 将“忽略”未发送到 stdout/stderr 的日志输出,因此您应该寻找替代方案。

    此对话为您提供了有关 Docker 中的 postfix 和 syslogd 要求以及可能的策略的更多信息。基本上,它会尝试将 syslog 输出发送到主机的 syslog 日志文件,但您将无法使用 docker 日志来读取它们。

    Docker Hub 中的这个旧容器试图做你想做的事,至少解释了你想要解决的同一个问题。

    最后,我发现这篇文章有助于理解从容器中获取 syslogd 信息的问题(在 nabble 讨论中引用)。

    • 3
  5. gertvdijk
    2022-06-06T05:40:48+08:002022-06-06T05:40:48+08:00

    从 Postfix 3.4 开始,这得到了适当的支持,从而限制了 syslog 依赖性。

    摘自postfix/MAILLOG_README:

    配置记录到标准输出

    当 Postfix 在容器中运行时,记录到标准输出很有用,因为它消除了对 syslogd 的依赖。

    1. master.cf如果以下行不存在,则添加以下行(注意:行首不能有空格):

      postlog   unix-dgram n  -       n       -       1       postlogd
      

      注意:服务类型unix-dgram是在 Postfix 3.4 中引入的。在退回到较旧的 Postfix 版本之前删除上述行。

    2. 配置main.cf为maillog_file = /dev/stdout.

    3. 以postfix start-fg.

    我用于启动 Postfix 的 Docker 入口点利用postconf如下所述修补配置:

    #!/bin/bash -e
    
    postconf maillog_file=/dev/stdout
    
    # Rely on the Postfix 3.4+ default master.cf containing the line
    # 'postlog   unix-dgram [...]'
    
    exec /usr/sbin/postfix start-fg "$@"
    
    • 0

相关问题

  • Postfix 在特定端口上接受邮件

  • 让 Postfix 以两种方式处理垃圾邮件

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 后缀电子邮件地址

  • 什么是最好的开源电子邮件解决方案包

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve