在 Server 2012 上将 SpamAssassin 作为 Windows 服务运行

在 Server 2012 上将 SpamAssassin 作为 Windows 服务运行

我正在尝试运行 spamd.exe 文件,该文件将运行 windows 版 spamassassin,作为 windows 服务。我试过

sc create spamassassin binPath="C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamd.exe" DisplayName="Spam Assassin" start=auto

并得到

[SC] CreateService SUCCESS

结果。

我现在可以在服务中看到“Spam Assassin”。当我右键单击它并选择“启动”时,我收到错误,如“错误 1053:服务未及时响应启动或控制请求。”

几乎没有关于 sc.exe 将 spamd.exe 文件作为服务运行的主题,所以我决定在这里询问。

我知道 spamd.exe 能够通过 Microsoft 的旧实用程序 SrvAny 作为 Windows 服务运行。但它太旧了,与 Windows Server 2012 或 x64 可执行文件不兼容(这是我在论坛上看到的)。

有人能告诉我为什么在服务启动时会出现 1053 错误,或者至少有一种方法可以让 spamd.exe 在 Windows Server 2012 环境中作为服务运行?

谢谢!

答案1

Windows Server 2012R2我成功地让 Spamd.exe 在 上使用作为服务运行srvany.exe。 它不受 的支持2012R2,但对于此目的来说,它工作得很好。

首先srvany.exeWindows Server 2003资源工具包中获取并确保它已安装在c:\windows\system32(我将在本教程中使用所有默认路径,根据需要进行修改)。

然后,从具有管理员权限的命令提示符运行以下命令:

sc create Spamd binPath= C:\Windows\System32\srvany.exe DisplayName= "SpamAssassin Daemon"

接下来,以管理员权限打开 regedit 并导航到该键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spamd\

在“ ”下创建一个名为“Parameters”的子键Spamd。在“Parameters”下创建一个名为“ Application”的字符串值。输入“ C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamd.exe”作为“Application”的字符串值(包括“ ”作为值的一部分)。创建另一个名为“ ”的字符串值AppParameters,并输入以下内容作为字符串值:< -l -s "C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamd.log">(不带<>但带有“ ”)。创建另一个名为“ AppDirectory”的字符串值,并输入“ C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\”作为值(不带“ ”)。

完成后,您就可以启动服务了。请注意,即使值有错误,服务也会无错误地启动,AppParameters因此请务必检查C:\Program Files (x86)\JAM Software\SpamAssassin for Windows\spamd.log日志文件以确保 SpamD 确实在运行。如果不是,您可能需要调整 AppParameters 值中的路径以反映系统上的正确路径。

一旦 SpamD 服务启动并且日志文件中有正确的内容,您就完成了!

请注意,我使用了类似的服务配置在同一台服务器上以守护进程的形式运行 ClamAV,而且效果也很好。

答案2

您收到可怕的“错误 1053”,因为 spamd.exe 不是真正的 Windows 服务,无法正确响应您启动服务的请求。您需要使用“服务包装器”(例如微软的服务,但也有其他的)可以接受您的启动服务请求并启动 spamd.exe。

答案3

考虑使用非吸吮服务经理。它运行良好,有 32 位和 64 位版本。它可以检测可执行文件是否在启动时失败并重新启动它,以及许多其他功能,包括图形服务安装和删除工具。强烈推荐,由我推荐!(没有从属关系,只是一个快乐的用户。)

相关内容