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

を更新するためのもう1つの手順が説明されていますがpostfix、これは私のケースでは必要ありませんでした。問題の核心は手順2と、のの追加--username spamdにあると思います。OPTIONS/etc/default/spamassassin

答え4

更新: Ubuntu 20.10 で spamassassin サービスを開始する方法

インストールspamassassin(およびspamcともsa-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-spamd( には長すぎますps)。

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 783PID に関係なく同じ情報が返されます。

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 設定(スパムの検出方法)を関連付けます。後者についてはman spamassassin、特に設定ファイル名について で説明されています。

関連情報