Linux中的服务认识
Linux下自动启动的服务都在/etc/rc.d/init.d/目录下,比如说mysql。如果不想让一个服务自动运行,把/etc/rc.d/init.d/目录下的这个服务脚本移除掉就可以(一定要移除吗,不可以使用类似Window下的手动启动?)。
可以操作的状态:
start 启动服务,等价于服务脚本里的start命令
stop 停止服务,等价于副外长脚本stop命令
restart 关闭服务,然后重新启动,等价于脚本restart命令
reload 使服不重新启动而重读配置文件,等价与服务脚本的reload命令
status 提供服务的当前状态,等价于服务脚本的status命令
condrestart 如果服务锁定,则这个来关闭服务,然后再次启动,等价于condrestart命令
一. 各项服务的功能介绍
amd 运行automount精灵程序,该精灵在必要时自动安装一些本地设备和NFS文件系统。
apmd apmd用来监视系统用电状态,并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。
arpwatch 该程序主要用来维护以太网物理地址和IP地址的对应关系。
atd 运行用户用At命令调度的任务。也在系统负荷比较低时 运行批处理任务。
autofs 当您需要时自动转载文件系统,而当您不需要时自动卸载。
bootparamd 该服务允许老的Sun工作站从Linux网络启动,它和rarp 现在很少使用,基本上被bootp和dhcp取代了。
crond cron是Unix下的一个传统程序,该程序周期地运行用户 调度的任务。比起传统的Unix版本,Vixie版本添加了不少属性,而且更安全,配置更简单。
dhcpd 该精灵提供了对动态主机控制协议(Dynamic Host Control Protocol)的访问支持。
ftpd FTP是文件传输协议的简称,它定义了在网络上从一台计算机向另一台计算机进行文件传输的方式,几乎所有的常用系统平台都提供FTP的服务程序和客户程序。
gated gated通过一个数据库提供了网络路由功能支持。它支持各种路由协议,包括RIP版本1和2、DCN HELLO协议、OSPF版本2以及EGP版本2到4。
gpm gpm为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台鼠标的拷贝,粘贴操作以及弹出式菜单。
httpd http是著名的www服务器,可用来提供HTML文件以 及CGI动态内容服务。
Inet 因特网操作服务程序。监控网络对各种它管理的服务的需求,并在要的时候启动相应的服务程序。通常,inet管理的程序有telnet、ftp、rsh和rlogin。关闭inet也就 关闭了这些由它管理的服务。
innd inn是最流行的用户组新闻服务器。它允许您建立起本地新闻服务器。配置有一定的难度,可以先阅读/usr/doc/ inn*文档获得帮助。
keytable 该程序的功能是转载您在/etc/sysconfig/keyboards里说明的键盘映射表,该表可以通过kbdconfig工具进行选 择。您应该使该程序处于激活状态。
ldap LDAP代表Lightweight Directory Access Protocol, 实现了目录访问协议的行业标准。
lpd lpd是系统打印守护程序,负责将lpr等程序提交给打印作业。
mcserv Midnight Commander服务进程允许远程机器上的用户通过Midnight Commander文件管理器操作本机文件。服务进程用PAM来验证用户,需要给出“用户名/口令”以通过验证。
mysql 一个快速高效可靠的轻型SQL数据库引擎。
named 域名服务器,将Internet主机名解析为点分的IP地址。
netfs 负责装载/卸载NFS、Samba、NCP(Netware)文件系统。
network 激活/关闭启动时的各个网络接口。
nfs NFS是一个流行的基于TCP/IP网络的文件共享协议。该服务提供了NFS文件共享服务,具体的配置在/etc/exports文件里。
nscd 该服务负责密码和组的查询,并且缓冲查询结果。如果您的系统有比较慢的服务(如NIS和NIS+),则应该启动该服务。
Pcmcia pcmcia主要用于支持笔记本电脑。
Portmap portmap 用来支持RPC连接,RPC被用于NFS以及NIS 等服务。
postgresql PostgreSQL关系数据库引擎。
qmail 它也是一个基于UNIX操作系统的Internet邮件传输机构( Internet Mail Transfer Agent 简称MTA)。它采用标准的简单邮件传输协议(Simple Mail Transfer Protocol 简称SMTP)与Internet上其他MTA交换信息,具有安全、可靠、高效、简单的特点。
random 保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的。
routed 该守护程序支持RIP协议的自动IP路由表维护。RIP主要使用在小型网络上,大一点的网络就需要复杂一点的协议。
rstatd Rstat 协议允许网络上的用户获得同一网络上各机器的性能参数。
rusersd 该服务使网络用户可以定位同一网络上的其他用户。
rwalld Rwall协议允许远程用户向在同一系统中活跃着的终端发送消息,类似wall的本地行为。
rwhod 允许远程用户获得运行rwho精灵的机器上所有已登录用户的列表,与finger类似。
sendmail 大名鼎鼎的邮件服务器。
smb 启动和关闭smbd和nmbd精灵程序以提供SMB网络服务。
snmpd 简单网络管理协议(SNMP)的守护精灵。
syslog syslog是操作系统提供的一种机制,守护程序通常使用这种机制将各种信息写到各个系统日志文件。通常应该启动该服务。
Webmin webmin是基于web的集系统管理与网络管理于一身的强大管理工具。利用webmin的强大功能,用户可以通过web浏览器来方便地设置自己的服务器、dns、samba、nfs、本地/远程文件系统以及许多其他的系统配置。
二. 服务的启动和停止
init是启动时运行内核的程序。它负责启动所有在启动时需要运行的进程, 包括允许您登录的gettys、NFS管理器、FTP管理器,以及您想在机器启动时运行的任何事。
SysV init的配置文件存放在/etc的一个子目录。这个目录叫rc.d。在那里您将发现 rc.sysinit 和以下目录:
init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d
init.d包含一组script。基本上,您在启动时或进入另一个运行级别时,每个service需要一个script。Services包括网络, NFS, 发送邮件, HTTPD等等。
默认的运行级别在/etc/inittab中定义。在前面有一行类似:
id:3:initdefault:
在这里, 您看到第二栏, 默认运行水平是3, 大多数系统都是这样. 如果想修改它,可以手工编辑/etc/inittab改掉3. 如果在rc3.d输入ls -l :
lrwxrwxrwx 1 root root 17 3:11 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 3:11 S30syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 14 3:32 S40cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 3:11 S50inet -> ../init.d/inet
lrwxrwxrwx 1 root root 13 3:11 S60nfs -> ../init.d/nfs
lrwxrwxrwx 1 root root 15 3:11 S70nfsfs -> ../init.d/nfsfs
lrwxrwxrwx 1 root root 18 3:11 S90lpd -> ../init.d/lpd.init
lrwxrwxrwx 1 root root 11 3:11 S99local -> ../rc.local
我们可以看到这个目录中没有真的'文件', 只有对init.d目录中的script的连接. 大多数的Linux发行版本中,启动脚本位于 /etc/rc.d/init.d。这些脚本被ln命令来连接到 /etc/rc.d/rcn.d目录。(这里的n 就是运行级0-6) 例如 /etc/rc.d/rc3.d下面的S10network就是连接/etc/rc.d/init.d下的network脚本的。
这个连接在前面还有一个'S'和一个数字。'S'是指启动这个特定的script,'K'是指结束它,即kill。 数字是顺序,Init 将根据顺序启动所有的services。例如,在同一个目录下,你还可以看到S35dhcpd这个文件,dhcpd服务就是在network服务之后启动。因此我们可以用一个两位数字和一个大写的'S'或'K'来启动或结束所需要的 service。
Init如何启动和结束service? 很简单,每个script都写了一个接收参数用来'启动' 和'结束'。我们可以用命令行来执行这些script, 如:
/etc/rc.d/init.d/httpd stop来结束httpd服务器。Init只需读文件名,如果有'K', 它就用'stop'参数调用script。如果有'S',则用'start'参数。
另外:在启动时或者修改运行级别时,当所有的其他初始化完成后,将执行文件/etc/rc.d/rc.local。可以在这增加新的初始程序,我所编写的程序就加在该文件中。在LINUX系统启动部分将详细介绍。
三、 linux运行级别详解
简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)
# 缺省的运行级,RHS用到的级别如下:
# 0 - 停机
# 1 - 单用户模式
# 2 - 多用户,但是没有NFS
# 3 - 完全多用户模式
# 4 - 没有用到
# 5 - X11
# 6 - 重新启动
对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。