Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Sendmail第四章:如何运行sendmail

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

4.如何运行sendmail

  一种运行sendmail的方法是,直接在命令行上附加接收者参数。例如:下面命令就是发一个邮件消息给george。

% /usr/lib/sendmail george

  你也可以同时给出多个接收者。例如,发一个邮件给george,truman和teddy:

% /usr/lib/sendmail george,truman,teddy

  sendmail程序可以接受两种不同的命令行参数。不以“-”字符开始的参数是接收者,如上面的george。而以“-”字符开始的参数则是影响sendmail运行的开发选项(如表4-1)。所有的命令行开关选项的解释,可以参考第36章。

  表4-1 一些命令行开关选项

  标记 说明


-b 设置运行模式
-v 运行于冗长模式
-d 运行于调试模式

4.1适宜的模式(-b)

  sendmail程序的“-b”参数可以衍生出许多功能。例如:使sendmail显示队列的内容,使sendmail重建别名数据库。完整的“-b”参数子参数在表4-2中列出。本章将介绍一些比较常用到的子参数。

  表4-2命令行开关选项-b的子选项

  格式 说明


-ba   使用ARPAnet(灰皮书书)协议
-bD 以守候进程模式运行,但不fork
-bd 以守候进程模式运行
-bH 清除固有的主机状态
-bh 打印固有的主机状态
-bi 重建别名数据库
-bm 成为一个邮件发送者
-bp 打印邮件队列内容
-bs 在标准输入处运行SMTP
-bt 测试模式:仅解析地址
-bv 检验:不收集、分发
-bz 冻结配置文件

  在表4-2中的选项可以使sendmail执行时象其它名字。这些名字如表4-3所示。每个名字可以是一个硬连接,一个符号连接,或sendmail的一份拷贝。

  表4-3 其它名字

  名字格式说明


hoststat -bh 打印固有主机状态
 mailq -bp 显示邮件队列内容
newaliases -bi 重建别名数据库
purgestat -bH 清除固有主机状态
 smtpd -bd 以守侯进程运行

  4.1.1 守候进程模式 (-bd)

  sendmail程序能够在后台以守侯进程模式运行,监听来自其它机器的邮件。Sendmail当第一次以守侯进程模式运行时,程序只读取配置文件一次,然后就一直运行,不再读取配置文件了。也就是说,执行后将不会发现配置文件的变化。

  当你对配置文件sendmail.cf做了任何修改,都需要kill掉sendmail进程,然后重新启动它。但当你kill掉这个守候进程前,必须知道如何正确地重新启动它。这些信息是/etc/sendmail/pid或一个系统rc文件。

  在BSD系列的UNIX系统,守候进程通常使用以下命令启动:

/usr/lib/sendmail –bd –q1h

  命令行开关选项“-bd”指定sendmail以守候进程方式运行。“-q”选项告诉sendmail多久去查看一次待处理邮件队列。“-q1h”就是将其设置为1小时。

  在你的机器上启动sendmail的命令,可能与我们这儿给出的是不同的。如果你管理许多不同的UNIX系统,你无须知道每一种是如何运行的。

4.1.1.1 kill并重启sendmail v8.7

  在sendmail 8.7以后的版本中,kill并重启sendmail变得比较简单。一个单一的命令将会完成这一工作:

% kill –HUP `head –1 /etc/sendmail.pid`

  这个单一的命令与下一个小节中的两个命令的效果完全相同。

4.1.1.2 kill并重启sendmail v8.6

  当你要以守候进程方式启动sendmail,你须确认没有一个已运行的sendmail守候进程。在8.6版sendmail中,可以在/etc/sendmail.pid文件的第一行中找到进程ID号pid。你可以执行以下命令来kill掉sendmail:

% kill `head –1 /etc/sendmail.pid`

  当你kill掉当前运行的守候进程,你可以使用以下命令来重新运行sendmail:

% `tail –1 /etc/sendmail.pid`

4.1.1.3 kill并重启老版本sendmail

  在老版本的sendmail中,你必须使用ps来获得sendmail的进程ID号pid。在BSD UNIX和System V UNIX使用ps的方法不尽相同。

  针对BSD UNIX来说,ps命令的将得到类似以下的输出:


% ps ax | grep sendmail | grep –v grep
   99  ?  IN  0:07  /usr/lib/sendmail -bd –q1h
% kill 99

  这个输出的最左边的就是进程ID号。

  针对System V UNIX系统来说,ps命令的参数及命令输出都不尽相同:


% ps ae | grep sendmail 
   99  ?0:01 sendmail
% kill 99


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Sendmail第三章 Sendmail扮演的角色   下一篇:Sendmail第五章 sendmail.cf文件

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章