我無法啟動 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

將 -4 新增到您的 OPTIONS 行

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

也描述了一個步驟,即 update 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,特別是設定檔名。

相關內容