将我的服务器升级到 Debian Jessie 后,spamassassin 不再启动。日志等如下:
使用以下方式调用 spamassassinsystemctl
$ sudo systemctl status spamassassin
● spamassassin.service - Perl-based spam filter using text analysis
Loaded: loaded (/lib/systemd/system/spamassassin.service; enabled)
Active: failed (Result: exit-code) since Sun 2015-08-30 11:34:01 CEST; 8s ago
Process: 28007 ExecStart=/usr/sbin/spamd -d --pidfile=/var/run/spamassassin.pid $OPTIONS (code=exited, status=255)
Aug 30 11:34:00 alchemist spamd[28007]: logger: removing stderr method
Aug 30 11:34:00 alchemist spamd[28009]: config: no rules were found! Do you need to run 'sa-update'?
Aug 30 11:34:01 alchemist spamd[28007]: child process [28009] exited or timed out without signaling production of a PID file: exit 255 at /usr/sbin/spamd line 2960.
Aug 30 11:34:01 alchemist spamd[28007]: child process [28009] exited or timed out without signaling production of a PID file: exit 255 at /usr/sbin/spamd line 2960.
Aug 30 11:34:01 alchemist systemd[1]: spamassassin.service: control process exited, code=exited status=255
Aug 30 11:34:01 alchemist systemd[1]: Failed to start Perl-based spam filter using text analysis.
Aug 30 11:34:01 alchemist systemd[1]: Unit spamassassin.service entered failed state.
因此,我sa-update
使用调试参数运行。
$ sudo -u debian-spamd sa-update --debug
Aug 30 11:59:51.468 [2947] dbg: logger: adding facilities: all
Aug 30 11:59:51.468 [2947] dbg: logger: logging level is DBG
Aug 30 11:59:51.468 [2947] dbg: generic: SpamAssassin version 3.4.0
Aug 30 11:59:51.468 [2947] dbg: generic: Perl 5.020002, PREFIX=/usr, DEF_RULES_DIR=/usr/share/spamassassin, LOCAL_RULES_DIR=/etc/spamassassin, LOCAL_STATE_DIR=/var/lib/spamassassin
Aug 30 11:59:51.469 [2947] dbg: config: timing enabled
Aug 30 11:59:51.470 [2947] dbg: config: score set 0 chosen.
Aug 30 11:59:51.476 [2947] dbg: generic: sa-update version svn1475932
Aug 30 11:59:51.476 [2947] dbg: generic: using update directory: /var/lib/spamassassin/3.004000
Aug 30 11:59:51.626 [2947] dbg: diag: perl platform: 5.020002 linux
[[SNIP MODULES]]
Aug 30 11:59:51.628 [2947] dbg: gpg: Searching for 'gpg'
Aug 30 11:59:51.628 [2947] dbg: util: current PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Aug 30 11:59:51.628 [2947] dbg: util: executable for gpg was found at /usr/bin/gpg
Aug 30 11:59:51.629 [2947] dbg: gpg: found /usr/bin/gpg
Aug 30 11:59:51.629 [2947] dbg: gpg: release trusted key id list: 5E541DC959CB8BAC7C78DFDC4056A61A5244EC45 0C2B1D7175B852C64B3CDC716C55397824F434CE
Aug 30 11:59:51.630 [2947] dbg: channel: attempting channel updates.spamassassin.org
Aug 30 11:59:51.630 [2947] dbg: channel: using existing directory /var/lib/spamassassin/3.004000/updates_spamassassin_org
Aug 30 11:59:51.630 [2947] dbg: channel: channel cf file /var/lib/spamassassin/3.004000/updates_spamassassin_org.cf
Aug 30 11:59:51.630 [2947] dbg: channel: channel pre file /var/lib/spamassassin/3.004000/updates_spamassassin_org.pre
Aug 30 11:59:51.643 [2947] dbg: channel: no updates available, skipping channel
Aug 30 11:59:51.644 [2947] dbg: diag: updates complete, exiting with code 1
以下是目录内容/var/lib/spamassassin/3.004000/
$ ls /var/lib/spamassassin/3.004000/
updates_spamassassin_org/
$ ls /var/lib/spamassassin/3.004000/updates_spamassassin_org/
当我spamd
使用调试参数调用时
$ sudo spamd --debug
Aug 30 11:39:56.845 [29534] dbg: logger: adding facilities: all
Aug 30 11:39:56.845 [29534] dbg: logger: logging level is DBG
Aug 30 11:39:56.859 [29534] dbg: logger: calling setlogsock(unix)
Aug 30 11:39:56.879 [29534] dbg: logger: opening syslog with unix socket
Aug 30 11:39:56.880 [29534] dbg: logger: successfully connected to syslog/unix
Aug 30 11:39:56.880 [29534] dbg: logger: successfully added syslog method
Aug 30 11:39:56.880 [29534] dbg: spamd: will perform setuids? 1
Aug 30 11:39:56.881 [29534] dbg: spamd: socket module of choice: IO::Socket::IP 0.32, Socket 2.013, have PF_INET, have PF_INET6, using Socket::getaddrinfo, AI_ADDRCONFIG is supported
Aug 30 11:39:56.881 [29534] dbg: spamd: socket specification: "localhost", IP address: localhost, port: 783
Aug 30 11:39:56.881 [29534] dbg: spamd: attempting to listen on IP addresses: 127.0.0.1, ::1, port 783
Aug 30 11:39:56.881 [29534] dbg: spamd: creating IO::Socket::IP socket: Listen: 128, LocalAddr: 127.0.0.1, LocalPort: 783, Proto: tcp, ReuseAddr: 1, Type: 1, V6Only: 1
Aug 30 11:39:56.882 [29534] dbg: spamd: creating IO::Socket::IP socket: Listen: 128, LocalAddr: ::1, LocalPort: 783, Proto: tcp, ReuseAddr: 1, Type: 1, V6Only: 1
Aug 30 11:39:56.883 [29534] dbg: spamd: server listen sockets fd bit field: 00000110
Aug 30 11:39:56.884 [29534] dbg: logger: adding facilities: all
Aug 30 11:39:56.884 [29534] dbg: logger: logging level is DBG
Aug 30 11:39:56.884 [29534] dbg: generic: SpamAssassin version 3.4.0
Aug 30 11:39:56.884 [29534] dbg: generic: Perl 5.020002, PREFIX=/usr, DEF_RULES_DIR=/usr/share/spamassassin, LOCAL_RULES_DIR=/etc/spamassassin, LOCAL_STATE_DIR=/var/lib/spamassassin
Aug 30 11:39:56.885 [29534] dbg: config: timing enabled
Aug 30 11:39:56.888 [29534] dbg: config: score set 0 chosen.
Aug 30 11:39:56.895 [29534] dbg: spamd: Preloading modules with HOME=/tmp/spamd-29534-init
Aug 30 11:39:56.896 [29534] dbg: config: using "/etc/spamassassin" for site rules pre files
Aug 30 11:39:56.897 [29534] dbg: config: read file /etc/spamassassin/init.pre
Aug 30 11:39:56.897 [29534] dbg: config: read file /etc/spamassassin/v310.pre
Aug 30 11:39:56.898 [29534] dbg: config: read file /etc/spamassassin/v312.pre
Aug 30 11:39:56.898 [29534] dbg: config: read file /etc/spamassassin/v320.pre
Aug 30 11:39:56.898 [29534] dbg: config: read file /etc/spamassassin/v330.pre
Aug 30 11:39:56.899 [29534] dbg: config: read file /etc/spamassassin/v340.pre
Aug 30 11:39:56.899 [29534] dbg: config: using "/var/lib/spamassassin/3.004000" for sys rules pre files
Aug 30 11:39:56.899 [29534] dbg: config: using "/var/lib/spamassassin/3.004000" for default rules dir
Aug 30 11:39:56.900 [29534] error: config: no rules were found! Do you need to run 'sa-update'?
config: no rules were found! Do you need to run 'sa-update'?
如果我没记错的话,错误发生在这一行:Aug 30 11:39:56.899 [29534] dbg: config: using "/var/lib/spamassassin/3.004000" for default rules dir
它不应该使用 /usr/share/spamassassin 作为默认规则吗?我不确定如何在我的配置中更改它,因为没有行指定它应该是其他任何东西。