我无法启动 spamassassin 服务

我无法启动 spamassassin 服务

我已经在我的系统(14.04)中安装并配置了 spammassassin,使用如下命令导师. 当我使用以下方式启动服务时,

service spamassassin start

我得到的回应是,

Starting SpamAssassin Mail Filter Daemon: server socket setup failed, retry 1: spamd: could not create IO::Socket::INET6 socket on [::1]:783: Cannot assign requested address
server socket setup failed, retry 2: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 3: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 4: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 5: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 6: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 7: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 8: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
server socket setup failed, retry 9: spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use
spamd: could not create IO::Socket::INET6 socket on [127.0.0.1]:783: Address already in use

我努力了,

netstat -lptn

它表明,

在此处输入图片描述

有进程正在使用 127.0.1.1:783 运行

也尝试过,

sudo netstat -lepnt

我得到了,

在此处输入图片描述

这里也没有显示任何使用 127.0.1.1:783 运行的进程

请告诉我问题出在哪里?

答案1

运行sudo netstat -lptn | grep 783并获取使用 783 端口的程序的 PID(输出最右侧 - 类似于 2332/spamd.pid )。然后使用 终止该程序sudo kill -9 PID。然后启动 spamassasin

service spamassassin start

如果您仍然收到 INET6 套接字错误,请尝试运行不支持 IPv6 的 spamd(假设您不需要它)。

sudo nano /etc/default/spamassassin

在 OPTIONS 行中添加 -4

spamd --help

...
-4, --ipv4-only, --ipv4           Use IPv4 where applicable, disables IPv6
...

否则,请排除 IPv6 配置故障。

答案2

检查 ipv6 是否已启用

sysctl -a|grep disable_ipv6

如果没有,请按照上面的建议在 spamassassin 中启用或禁用 ipv6。

答案3

我遇到了同样的问题。这里的答案对我一点帮助都没有。我发现问题消失了,无需禁用 IPv6,只需编辑/etc/default/spamassassin并添加用户即可spamd,如所述这里。该页面描述的基本步骤如下:

1)sudo apt-get install spamassassin spamc

2)sudo adduser spamd --disabled-login

3)编辑/etc/default/spamassassin以包含以下内容:

ENABLED=1
SPAMD_HOME="/home/spamd/"
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SPAMD_HOME} -s ${SPAMD_HOME}spamd.log"
PIDFILE="${SPAMD_HOME}spamd.pid"
CRON=1

4)编辑/etc/spamassassin/local.cf设置一些反垃圾邮件规则,例如,

rewrite_header Subject ***** SPAM *****
report_safe             0
required_score          5.0
use_bayes               1
use_bayes_rules         1
bayes_auto_learn        1

5)sudo service spamassassin start

还描述了一个步骤,即更新postfix,而我的情况不需要这个步骤。我认为问题的核心是步骤 2,然后--username spamd添加OPTIONS/etc/default/spamassassin

答案4

更新:如何使用 Ubuntu 20.10 启动 spamassassin 服务

安装spamassassin(以及spamcsa-compile):

% sudo apt install spamassassin

Spamassassin 可以使用 在前台运行spamassassin,也可以使用 作为守护进程在后台运行spamd -d

安装将创建一个非登录用户debian-spamd

为什么要有专用用户?

% grep spamd /etc/passwd
debian-spamd:x:131:136::/var/lib/spamassassin:/usr/sbin/nologin

不创建用户spamd

制作启动项:

% sudo systemctl enable spamassassin  
Synchronizing state of spamassassin.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable spamassassin
Created symlink /etc/systemd/system/multi-user.target.wants/spamassassin.service → /lib/systemd/system/spamassassin.service.

检查配置:

% cat /lib/systemd/system/spamassassin.service
[Unit]
Description=Perl-based spam filter using text analysis
After=network.target

[Service]
Type=forking
PIDFile=/run/spamd.pid
EnvironmentFile=-/etc/default/spamassassin
ExecStart=/usr/sbin/spamd -d --pidfile=/run/spamd.pid $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
StandardOutput=null
StandardError=null
Restart=always

[Install]
WantedBy=multi-user.target

我对配置文件的最佳猜测/etc/default/spamassassin是:

OPTIONS="--debug --create-prefs --username=debian-spamd --max-children=5 --username=debian-spamd --helper-home-dir --syslog=/var/log/spamd.log"

查看man spamd所有选项。

无需重启计算机即可启动服务:

% sudo systemctl start spamassassin

或者

% sudo service spamassassin start 

配置更改后重新启动服务而无需重新启动计算机:

% sudo service spamassassin restart 

检查状态:

% sudo service spamassassin status 
● spamassassin.service - Perl-based spam filter using text analysis
     Loaded: loaded (/lib/systemd/system/spamassassin.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-06-21 00:47:10 WEST; 1s ago
    Process: 56524 ExecStart=/usr/sbin/spamd -d --pidfile=/run/spamd.pid $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 56529 (spamd)
      Tasks: 3 (limit: 19035)
     Memory: 98.0M
     CGroup: /system.slice/spamassassin.service
             ├─56529 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/run/spamd.pid --debug --create-prefs --max-children=5 --username=debian-spa>
             ├─56530 spamd child
             └─56531 spamd child

检查运行选项:

% ps -ef|grep spamd              
root       56529       1  0 00:47 ?        00:00:01 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/run/spamd.pid --debug --create-prefs --max-children=5 --username=debian-spamd --helper-home-dir=/var/lib/spamassassin --syslog=/var/lib/spamassasin/spamd.log
debian-+   56530   56529  0 00:47 ?        00:00:00 spamd child
debian-+   56531   56529  0 00:47 ?        00:00:00 spamd child  

其中是( 太长)debian-+的简写。debian-spamdps

检查PID:

% cat /run/spamd.pid
56529

检查spamd正在监听的网络:

% sudo netstat -nlp|grep 56529
tcp        0      0 127.0.0.1:783     0.0.0.0:*  LISTEN      
56529/perl           
tcp6       0      0 ::1:783        :::*    LISTEN      
56529/perl 

给定默认端口号 783,sudo netstat -nlp|grep 783将独立于 PID 返回相同的信息。

spamd 可以与邮件服务器一起使用但它也可以直接在命令行中使用。 之后spamc,输入一些文本,使用 退出Control-D,这将生成一份报告。

使用 可以获得相同的报告spamassassin

spamd本身可以在命令行中启动。

在 中/etc/default/spamassassin,ENABLE、PIDFILE、CRON 不起作用。当 CRON = 1 时,我看不到 cron 作业:

% sudo crontab -u debian-spamd -l
no crontab for debian-spamd

% sudo crontab -u root -l        
no crontab for root

其他配置文件:/etc/init.d/spamassassin

不要混淆 spamassassin服务配置(到目前为止讨论过)与 spamassassin 配置(如何检测垃圾邮件)进行了比较。后者在 中有解释man spamassassin,特别是配置文件名。

相关内容