3.6 运行级别
1.init规定运行级别0—6,4为备用
下面详述init规定的运行级别:
表3.1 init规定的运行级别
运行级别 | 功能 |
0 | 关机(别设成默认) |
1 ‘s’ | 单一用户模式(仅root用户在紧急情况下登录,用于执行系统维护工作) |
2 | 多用户模式,但没有nfs网络 |
3 | 完整的多用户模式(包含网络)(字符界面) |
4 | 用户自定,但被默认为运行级别3的副本 |
5 | Xll 包含(网络)(图形界面) |
6 | 重启(别设成默认) |
2.可选择任何一个运行级别:
默认级别在/etc/ inittab文件里规定,/etc/ inittab文件里的initdefault行控制着系统开始后的运行级别。它的格式如下:
id: x : initdefault:
x 是系统开始后希望的运行级别。
如果initab没有一个默认的运行级别可选择,你将在启动时被提示输入一个运行级别。
运行级别(7—9)也有效,虽然不存在文档中,这是因为传统unix 变量不使用他们。
引导以后可执行init x 命令,进入希望的运行级别(x是希望的运行级别,包括0123456Ss)。
3.查看当前和先前一个运行级别
./sbin/runlevel
3.7 守护进程
1.一个守护进程是一个运行在后台的程序,提供一些系统服务
什么是daemon:
在Linux系统上,有一些进程在引导时开始并持续运行直到系统的电源关闭或直到你执行了kill命令才停止。这些进程提供一些特殊功能,例如:web服务、共享打印机队列或登录请求进程。在Unix世界里这些进程类型叫daemons,发音为“deemon”或“damon”
一个守护进程运行在后台,等候事件的发生,当守护进程收到一个请求,他分出自己的一个拷贝回答进程请求。此时,“父进程”回来等候下一个事件或请求。
Apache webserver就是一个守护进程的例子,当系统第一次引导时它开始启动。保持在内存里等候web page服务请求直到系统关闭为止或手动关闭httpd。
2.守护进程的工作原理
从守护进程的概念可以看出,对于系统所要提供的每一种服务,都必须运行一个监听某个端口连接发生的守护程序,这通常意味着系统资源的浪费。为了解决这个问题,我们引入了“网络守护进程服务程序(超级服务器)”的概念。几乎所有的UNIX类系统都运行了一个“网络守护进程服务程序”,它为许多服务创建套结字(Socket),并且使用Socket系统调用同时监听所有这些端口。当远程系统请求一个服务时,网络守护进程服务程序监听到这个请求并且会产生该端口的服务器程序为客户提供服务。
Red Hat Linux使用的网络守护进程服务程序是xinetd(extended internet daemon)。
3.两种类型的守护进程 :
⑴ 独立的守护进程
独立运行的守护进程由init脚本负责管理,其脚本存放在/etc/rc.d/init.d/目录下。所有的系统服务都是独立运行的,如crond、syslogd、xinetd等。
⑵ 临时的守护进程—
临时的守护进程—是由“超级守护进程” xinetd控制的守护进程。但xinetd本身也是独立的守护进程。由xintd管理的守护进程的配置文件存放在/etc/xinetd.d/目录下,默认的xinetd的主配置文件是/etc/xinetd.conf。
可有数个办法启动守护进程。“独立的”daemon是一个程序,它始终运行并且由init(如mingetty和gdm)或一个启动脚本(/etc/rc.d)中的一个启动;“临时的”daemon仅当它被需要时启动,并且被一个“独立的”守护进程xinetd控制调用。 “独立的“守护进程能被更快地使用,但是它始终占用内存空间和cpu周期,无论“独立的“守护进程是否被激活都总在使用内存空间和cpu周期。
典型的,一个守护进程不连接到一个TTY终端,因此,可用ps命令报告守护进程状态。
有“?”号的TTY。从此,你也可以认出进程,它被守护进程管理,作为他们也将在tty字段展示一个“?”。
4.两种类型守护进程的特点
为了节约资源,引入了xinetd用于监控网络服务,如telnet、talk等。使用xinetd启动网络服务虽然可以节省资源,但是对于服务量很大的守护进程(如HTTP服务、FTP服务)将影响到其他服务的运行,同时也影响所提供服务的响应速度。为此,某些常用的知名的网络服务的守护进程需要单独启动。
3.8 启动脚本/etc/rc.d/rc. sysinit
1.rc.sysinit脚本的任务是系统初始化
当第一次运行rc. sysinit脚本时,如果你想去进入交互模式,它提示你去键入字母“I”。在交互模式里,在执行某项服务之前它将提示你确认。这个脚本格式简明直接并且有好的文档说明,因此可在附带详细的资料中简单直接地搜索。
2.重要的任务包括:
在/etc/ sysctl.conf文件中设置内核参数。
设置系统时钟。
加载keymaps (键盘管理辅助程序)。
激活swap 分区。
设置 hostname (主机名)。
检查并加载root 文件系统。
加载RAID设备。
激活磁盘配额。
检查并加载其他文件系统。
清除失效锁和pid(进程号)文件。
3.9系统v运行级别
1.运行级别规定了启动哪些服务
⑴ 服务脚本存放在/etc/rc. d/init. d目录中
图3.1 /etc/rc. d/init. d目录中服务脚本
我下面对服务脚本的作用做简单介绍:
/etc/rc.d/init.d/anacron
用于定期运行程序的daemon,anacron根据其配置文件anacron.conf定期运行一些程序。
/etc/rc.d/init.d/apmd
高级电源管理
/etc/rc.d/init.d/arpwatch
启动arpwatch这个daemon程序。可能是用来响应arp请求的。
/etc/rc.d/init.d/atd
把过一段时间运行的程序放到/var/spool/at里面,等到时间到,这个程序由at来启动。
/etc/rc.d/init.d/autofs
用来启动autodaemon的脚本,为什么我们的光盘放到CD-Driver里后系统就会自动发现,像gnome会自动挂载估计就是这个东西。
/etc/rc.d/init.d/crond
和windows里面的"计划任务"差不多的东西,这里的所有设置在crontab这个文件里面
/etc/rc.d/init.d/cups
Unix 通用打印服务程序
/etc/rc.d/init.d/gpm
gpm是一个可以使你在Console模式下使用鼠标的Daemon程序.
/etc/rc.d/init.d/halt
关机的时候调用这个脚本
/etc/rc.d/init.d/httpd
Apache Web Server 的启动脚本
/etc/rc.d/init.d/identd
用于决定是否接受网络上来的TCP连接的daemon程序
/etc/rc.d/init.d/innd
互联网News Server Daemon
/etc/rc.d/init.d/iptables
用于启用iptables
/etc/rc.d/init.d/irda
用于启用红外线daemon程序
/etc/rc.d/init.d/keytable
配置键盘映射表
/etc/rc.d/init.d/kudzu
这个脚本用于监测配置新硬件
/etc/rc.d/init.d/lpd
Linux Print Daemon Linux打印控制管理程序
/etc/rc.d/init.d/named
用于启动DNS服务器的
/etc/rc.d/init.d/netfs
用来初始化 网络文件系统,同时挂载网络文件系统
/etc/rc.d/init.d/nfs
加载NFS(Net File System)网络文件系统
/etc/rc.d/init.d/portmap
portmap 是在网络上做端口映射的
/etc/rc.d/init.d/random
这个脚本用于重新设置随机数的状态
/etc/rc.d/init.d/rarpd
是一个用于响应rarp请求的daemon程序
/etc/rc.d/init.d/rhnsd
Red Hat Linux 的自动升级程序,一个daemon程序
/etc/rc.d/init.d/sendmail
启动SendMail邮件系统,有的时候我用root账号登录进系统,会出现"You have mail...",就是这个道理!
/etc/rc.d/init.d/sshd
ssh是一个为登录到远程计算机,并且在远程计算机上运行程序服务的一个daemon程序,他将逐渐取代rsh和rlogin工具。
/etc/rc.d/init.d/xfs
用来打开或者关闭XWindows的daemon程序!
/etc/rc.d/init.d/xinetd
以前用的是inetd,从rh70开始就使用了xinetd,其实这两个工具的功能比较接近!
⑵ 各个运行级别有一个对应的目录。
/etc/rc.d/rcx.d
图3.2各个运行级别有一个对应的目录
运行级别目录里的符号链接调用init.d目录里的脚本并且有一个start或stop参数。
图3.3-4 运行级别目录里的符号链接
用于启动服务的脚本名格式为“Snn服务名称”,“S”是“Start”的缩写,代表启动服务,“nn”为两位的数字序号用于确定同类脚本的执行顺序。当系统进入某运行级别时将按照序号从小到大的顺序执行脚本启动服务。
简单的描述如:某服务在某运行级别中需要运行,则该服务在该运行级别的目录中存在“S”开始的脚本。运行级别目录中的脚本其实都是指向服务器脚本目录“/etc/rc.d/init.d/”中的符号链接。
用于停止服务的脚本名格式为“Knn服务名称”,“K”是“Kill”的缩写,代表停止服务,“nn”为两位的数字序号用于确定同类脚本的执行顺序。当系统进入某运行级别时将按照序号从小到大的顺序执行脚本停止服务。
简单的描述如:某服务在某运行级别中不需要运行,则该服务在该运行级别的目录中存在“K”开始的脚本。运行级别目录中的脚本其实都是指向服务器脚本目录“/etc/rc.d/init.d/”中的符号链接。
2. 系统v运行脚本
系统管理员有能力并且很容易去改变运行级别。如果你需要去测试一些软件或执行系统维护,你能切换到运行级别1,系统将进入单用户模式。你不用关机和重启而去改变运行级别。运行系统任务的脚本是在/etc/ rc.d/ init.d里查找。
3.10 /etc/ rc.d/ rc.local
1.运行级别目录之后最后运行的特殊脚本是:
/etc/ rc.d/ rc.local
cat /etc/ rc.d/ rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
2./etc/ rc.d/ rc.local脚本处在公共位置可定制修改
rc.local 是最后的系统v初始化脚本,因为rc.local脚本在运行级别的脚本执行完毕之后再执行,此脚本可加入你需要的程序动作,例如执行磁盘优化程序(开启DMA100设置等)。
系统安装完毕后,硬盘的 DMA 是没有打开的,在/etc/rc.d/rc.local 最后面加上一行 /sbin/hdparm -d1 -c3 -m16 /dev/hda 这样每次开机后,硬盘的 DMA 就会开启,不必每次手动设定。
如果您的硬盘机支持 ATA33 可以加上 -X66 这个参数,ATA66则是 -X68,像我的硬盘是 ATA66 那么完整参数就是 /sbin/hdparm -d1 -X68 -c3 -m16 /dev/hda 经过测试 ,在 DMA 未开启以前,实际读取效率是每秒约 4.10 Mb 左右,开启 DMA 后,每秒实际读取效率跃升为 20 Mb 大约提升 5 倍之多。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved