北街最近在测试安装 Linux AS5 for oracle ,装好系统启动的时候发现 sendmail 和 sm-client 很慢。这个问题困扰了我很久,启动过程少则一到两分钟,多则四到五分钟,而且要命的是不报任何错误信息,“等待”是一件非常痛苦的事情!
今天借这次安装机会,找了相关资料来解决此问题。首先,我们要需要明白这两个启动项的功能。 sendmail 是一个古老的邮件系统,在大部分 Linux 发行版本中这个包默认安装。
装完 Linux 系统需要重启,到了启动 sendmail 服务的时候你会发现启动画面停止了,没有耐性和经验的朋友可能会以为系统出故障或者系统没有装好,其实这只是系统启动 sendmail 的时候查询你设置的主机名的 A 记录或反向域名记录。
由于全球9台 DNS 根系统都在美国,这个时候会去查询本机主机名对应的 dns A 记录,特别时你安装系统时设置的一些“奇怪”的主机名的时候,比如 rac1 等等之类的,这个时候 sendmail 会去做这个操作过程。
这个时候我们就可以对症下药了,我们可以修改系统配置文件 /etc/hosts 让 sendmial 绕过查询远程主机,这里给出一种最简单的方法,给主机设置一个别名
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
修改成
127.0.0.1 localhost.localdomain localhost 主机名称
查看本机的主机名称的命令是: hostname
重新启动sendmail服务,你会发现启动时间已经到秒级了。
# service sendmail restart
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
# reboot
装好 Linux 系统,启动时候会提示两个错误:
1. Applying Intel Microcode update: FATAL: Module microcode not found. ERROR: Module microcode does not exist in /proc/modules [FAILED]
官方解释:这些信息是 /etc/init.d/microcode_ctl 初始化脚本在执行 modprobe microcode 命令加载 Intel 32 位架构 CPU 的 Microcode 更新驱动到内核的时候产生的。
RedHat Linux 把这个设备的驱动编译成模块,但是这个静态模块在插入 Xen 内核的时候会产生项目的错误。这些错误是正常的,可以忽略。
虽然这个错误是正常的,但是每次启动总看着闹心,反正这个服务也无法启动,可以考虑关闭。
# chkconfig microcode_ctl off
# service microcode_ctl stop
2. Starting sendmail:make: ***Warning: File 'sendmail.cf' has modification time in the future (2004-07-27 07:53:56 > 2004-07-27 03:09:39.029378)
出现这个错误的原因是 sendmail.cf 的创建时间比当前系统时间较快,由于要生成新的 sendmail.cf ,所以会出现错误提示。更改一下 sendmail.cf 的时间就没问题了。
# cd /etc/mail
# touch *


博客里的广告好多啊2...
最近有点忙,很久没有来看看了!
@大地软件 忙点好啊,忙点充实!
@天津婚纱摄影 你不也是来打广告的么,呵呵!