简单地说,
重新启动通常需要不到1分钟,但如果clamav-daemon正在运行,则重新启动需要30分钟。
我有一个Ubuntu15.10“云”邮件服务器: postfix,dovecot,mysql,通过SSH访问。这已经工作了几个星期,并在1分钟内重新启动。一切都很好,直到我安装了阿马维斯,通过Ubuntu的apt-get安装包-现在重新启动需要整整30分钟,每次。
跑步的时候,一切都正常。我查过日志没有明显的问题。Clamav正在工作,邮件发送和接收,CPU使用率在0%到0.5%之间波动。
我已经通过消除的过程将问题缩小到了clamav-daemon。唯一的新安装是Amavis,它增加了新的守护进程。如果我停止了它们(amavis、clamav-daemon和clamav-freshclam),那么重新启动是即时的。如果我只停止了clamav-daemon,重新启动是即时的。但如果我继续运行,停止所有其他,重新启动是30分钟再次。
这是完全可重复的,等待时间总是精确的30分钟。这让我认为Clamav在等待用户输入,超时时间为30分钟。
我可以看到Clamav的进程正在以"--foreground=true“运行。这使我认为Amavis故意这样做是为了捕获输出,但在重新启动时不需要提示符。
来自htop:

注意:/etc/init.d/sendsigs已启用report_unkillable以捕获不可终止的进程,而/etc/default/apport已启用。/var/crash中的日志没有最近的日志。
(大约14:51重新启动,服务器直到15:23-30分钟后才准备好SSH,其间没有错误。)
...
14:52:45 2016 -> --- Stopped at Fri 14:52:45 2016
15:23:04 2016 -> +++ Started at Fri 15:23:04 2016
15:23:04 2016 -> Received 1 file descriptor(s) from systemd.
15:23:04 2016 -> clamd daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
15:23:04 2016 -> Running as user clamav (UID 119, GID 127)
......
14:51:15 mail amavis[1578]: Using primary internal av scanner code for ClamAV-clamd
14:51:15 mail amavis[1578]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan
14:51:15 mail amavis[1578]: Deleting db files __db.001,nanny.db,__db.003,snmp.db,__db.002 in /var/lib/amavis/db
14:51:15 mail amavis[1578]: Creating db in /var/lib/amavis/db/; BerkeleyDB 0.55, libdb 5.3
15:23:05 mail postgrey[820]: Process Backgrounded
15:23:05 mail postgrey[820]: 2016/02/12-15:23:05 postgrey (type Net::Server::Multiplex) starting! pid(820)
15:23:05 mail postgrey[820]: Resolved [localhost]:10023 to [::1]:10023, IPv6
15:23:05 mail postgrey[820]: Resolved [localhost]:10023 to [127.0.0.1]:10023, IPv4
......
14:52:18 mail systemd[1]: Stopping ClamAV virus database updater...
14:52:18 mail freshclam[760]: Update process terminated
14:52:18 mail systemd[1]: Stopped ClamAV virus database updater.
14:52:42 mail systemd[1]: Stopped Setup Virtual Console.
14:52:42 mail systemd[1]: Stopping LVM2 PV scan on device 202:2...
14:52:42 mail systemd[1]: Deactivating swap /dev/disk/by-uuid/758b48d5-df40-4ca8-af0d-a482044d21dd...
14:52:42 mail systemd[1]: Stopping Authenticate and Authorize Users to Run Privileged Tasks...
14:52:42 mail systemd[1]: Stopping User Manager for UID 1000...
14:52:42 mail systemd[1907]: Reached target Shutdown.
14:52:42 mail swapoff[2140]: swapoff: /dev/mapper/ubuntu-swap: swapoff failed: Cannot allocate memory
14:52:42 mail systemd[1907]: Starting Exit the Session...
14:52:42 mail systemd[1907]: Stopped target Default.
14:52:42 mail systemd[1]: Stopping Session 1 of user gavannon.
14:52:42 mail systemd[1907]: Stopped target Basic System.
14:52:42 mail systemd[1907]: Stopped target Sockets.
14:52:42 mail systemd[1]: Stopped target Graphical Interface.
14:52:42 mail systemd[1907]: Stopped target Paths.
14:52:42 mail systemd[1907]: Stopped target Timers.
14:52:42 mail systemd[1]: Removed slice system-ifup.slice.
14:52:42 mail systemd[1]: Removed slice system-systemd\x2dfsck.slice.
14:52:42 mail systemd[1]: Stopped target Timers.
14:52:42 mail systemd[1]: Stopping Accounts Service...
14:52:42 mail systemd[1]: Stopped target Multi-User System.
14:52:42 mail systemd[1]: Stopped Set Cloud Password.
14:52:42 mail systemd[1]: Stopping LSB: Record successful boot for GRUB...
14:52:42 mail systemd[1]: Stopping LSB: Starts amavisd-new mailfilter...
14:52:42 mail systemd[1]: Stopping OpenBSD Secure Shell server...
14:52:42 mail systemd[1]: Stopped target Login Prompts.
14:52:42 mail systemd[1]: Stopping Getty on tty1...
14:52:42 mail systemd[1]: Stopping LSB: XenServer Virtual Machine daemon providing host integration services...
14:52:42 mail rsyslogd: [origin software="rsyslogd" swVersion="8.12.0" x-pid="729" x-info="http://www.rsyslog.com"] exiting on signal 15.
(Something must be happening here, because the next line isn't for 30 minutes)
15:23:04 mail rsyslogd: [origin software="rsyslogd" swVersion="8.12.0" x-pid="770" x-info="http://www.rsyslog.com"] start
15:23:04 mail rsyslogd-2222: command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ $
15:23:04 mail rsyslogd: rsyslogd's groupid changed to 109在14:52发生的最后一件事是日志关闭(rsyslogd说exiting)。下一行是在引导时再次启动日志,但那是30分钟后!
发布于 2016-02-21 17:19:00
我在CentOS 7服务器上也有类似的问题(重新启动也需要30分钟),而我的日志与您的问题的共同点是swapoff failed: Cannot allocate memory条目。显然,当没有足够的空闲RAM将剩余的数据从交换空间加载回RAM时,交换空间在关机过程中会被禁用。运行较少的服务(即不运行clamav-daemon)可能会避免这种情况,这就是您当时看不到问题的原因。
https://bugzilla.redhat.com/show_bug.cgi?id=1031158解释了为什么在关机期间禁用交换空间。解决方案可能是确保在关闭期间禁用交换空间之前,占用内存最多的东西已经停止。这可能可以通过在systemd单元中指定依赖项来解决,但我还没有弄清楚这一点。
当然,另一种解决方案是添加更多的RAM,这样就不用太频繁地使用交换。:)
https://askubuntu.com/questions/732929
复制相似问题