我有一台正在从备份中恢复的服务器。很可能有人在某处 rsync 了根文件系统。所以不要指望它处于健康或正常状态。
当我尝试启动 postfix 时,它显示"the Postfix mail system is already running"
。但是ps aux | grep postfix
我可以看到没有任何东西在运行。
有什么建议么?
服务器是 Ubuntu dapper
答案1
如果“master”、“pickup”和“nqmgr”程序未运行,您可能需要检查 /var/spool/postfix/pid 中是否有过时的 pid 文件。如果有一个名为“master.pid”的文件,您可能需要删除该文件并重试。
顺便说一句,Ubuntu 可能会对 pid 文件使用略有不同的名称。postfix 程序没有名为“postfix”的二进制文件。
dpkg -L postfix
将显示 postfix 包的内容,以便您亲自查看。
答案2
这听起来不像您正在使用 init 脚本来停止/启动 postfix?即 /etc/init.d/postfix [start|stop|status]?
除了这里提供的帮助之外,如果您还没有这样做,我建议您使用现有的系统启动脚本和包管理。
首先,运行以下命令:
$(postconf -h daemon_directory)/master -t; echo $?
如果 postfix 主守护进程认为它当前正在运行(‘postconf’程序需要在您的路径中才能工作),则该命令应该返回一个非零值(即 1)。
pid 文件的位置是 /var/spool/postfix/pid/master.pid,详细信息请参阅 master(8) 手册页
man 8 master
了解更多信息。
答案3
看来该问题在当前版本的 Postfix 中仍然存在。
为了避免使用 postfix 时出现任何问题,请不要使用service postfix start
nor/etc/init.d/postfix start
来启动它。相反,请使用postfix start
; postfix stop
; 和postfix status
,它们提供相同的功能,但实际上可以工作。