⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 119.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 3 页
字号:
        <TR>
          <TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif"><IMG height=22 
            src="images/header_r2_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r2_c1.gif" width=296 border=0 
            name=header_r2_c1></TD>
          <TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colSpan=5>
              <DIV align=right><FONT class=normalfont>当前位置: 
              <A href="index.html" tppabs="http://www.linuxhero.com/docs/index.html">本站首页</A>
              <font color="#FF6699">&gt;&gt;</font>
<A href="type2.html" tppabs="http://www.linuxhero.com/docs/type2.html">基础知识</A>                 | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
            </TD>
          <TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 
        border=0></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff 
        border=0>
         <TR>
          <TD>
            <TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
              
              <TR>
                <TD vAlign=top align=middle width="60%">
                  <TABLE cellSpacing=0 cellPadding=0 width="100%" 
                  background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
                    <TBODY>
                    <TR>
                        <TD vAlign=top width="80%"> 
                          <DIV align=center>
                        <FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
                            </FORM>
                        <TABLE cellSpacing=0 cellPadding=0 width="95%" 
                          border=0><TBODY>
                          <TR>
                            <TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif" 
                          height=30></TD></TR></TBODY></TABLE>
                        <TABLE cellSpacing=0 cellPadding=3 width="95%" 
                        align=center border=0>
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE cellSpacing=0 cellPadding=3 width="100%" 
                              border=0>
                                <TBODY>
                                <TR>
                                      <TD vAlign=top> 
<p><FONT class=normalfont><B><font color=blue>用红帽子的chkconfig管理Init脚本</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:Jimmy Ball 翻译:Feng Dahui<br>来自:Linux知识宝库<br>联系方式:无名<br><br>你的管理工具中多了个简单但非常有用的东东。 <br>
<br>
我喜欢发现新的UNIX 命令,尤其是那些关于系统管理的。当我得知红帽子发布chkconfig 这个工具,我想起了在IRIX--一个从Silicon Graphics Inc.而来的UNIX变种--下的chkconfig。 IRIX的chkconfig被用来激活/禁止系统初始化的时候的服务,无需编辑,重命名或是移动 /etc中的init脚本。 <br>
<br>
类似,Red Hat设计chkconfig的目的就是用来管理系统初始化的时候启动的服务。不过,在我仔细阅读手册并作了些测试后,我很快发现Red Hat扩展了chkconfig,通过管理init脚本的符号连接得以最终控制启动关闭时的系统任务,真是节省时间! <br>
<br>
<br>
关于启动的基础知识 <br>
<br>
当你的linux启动时, 它显示的第一个进程是 init。如果你以前没看到过显示init进程, 输入: <br>
<br>
# ps -ef | grep init <br>
<br>
就会看到init的PID。 简而言之,init 运行 /etc/inittab中描述的任务。 <br>
<br>
/etc/inittab中说明的任务在init之后就会启动, 不过其它的任务启动很简单。例如,默认情况下 Red Hat的 /etc/inittab 对Ctrl-Alt-Delete键序设置了一个陷阱(trap),当这些键在控制台模式下(不是xdm)同时按下,就会运行  shutdown 命令。 在启动的时候, init基于/etc/inittab 的设置选项设定这个特性,不过在这个键序发生的时候才会执行。 <br>
<br>
inittab 的格式允许以"#"开始注释行,正常的条目用 ":" 界定。遵从如下的格式: <br>
<br>
id:runlevel:action:process <br>
<br>
id 代表用户定义的唯一的标志, <br>
runlevel 可以使0-6的组合或者为空, <br>
action 来自一个关键词keyword 描述init如何对待process, <br>
process 是要执行的命令。 <br>
<br>
描述action字段的各种关键字可以在inittab的手册中找到。常用的关键字, 不是全部, UNIX平台包括这些: <br>
<br>
initdefault--定义一个系统启动后进入的运行级 <br>
wait --会被执行一次的进程 (当进入运行级的时候)。init 进程将等待这个进程被终止。 <br>
boot --定义一个启动的时候执行的进程. <br>
bootwait --与 boot 类似 ,不过 init在继续运行前等待进程的终止 <br>
sysinit --定义一个进程在 boot的时候执行,在任何 boot或者bootwait inittab 条目的前面执行。 <br>
<br>
runlevel 字段指明系统状态。例如,运行级0代表系统关机,运行级6代表系统重启 。不幸的事,不是所有的Linux 发布都遵循同样的运行级定义 。在Red Hat中,默认情况下支持下面这些 <br>
<br>
0. 系统挂起 <br>
1. 但用户Single-user mode <br>
2. 多用户,没有NFS <br>
3. 完整的多用户Complete multiuser mode <br>
4. 用户自定义 <br>
5. X11 (XDM 登陆) <br>
6. 重新启动 <br>
<br>
每一个运行级在 /etc/rc.d下都有个相应的目录。如运行级5,目录就是/etc/rc.d/rc5.d 。包含启动这个运行级的时候运行的相关任务的相关文件。在 Red Hat中, 这些文件一般都是 shell 脚本的符号连接,可以在/etc/rc.d/init.d中找到。 <br>
<br>
让我们用一个简单的例子看一下这些东西, 下面这两个例子行来自我们的inittab文件:<br>
<br>
id:3:initdefault:<br>
l3:3:wait:/etc/rc.d/rc 3<br>
<br>
在Red Hat系统中这很典型。一旦init被启动 ,读取/etc/inittab 。 从第一行,我们知道 init 将在系统启动后从运行运行级3。一旦我们到了那个运行级 ,第二行告诉 init 去运行脚本 /etc/rc.d/rc 3 并且在执行前等待终止。<br>
<br>
在/etc/rc.d目录的rc 脚本收到 3作为一个参数。 这个 3 相当于运行级3。结果 rc 脚本执行/etc/rc.d/rc3.d 目录中的所有脚本。它首先用参数"stop"执行所有 K (代表 "kill"杀掉进程或者服务)打头的脚本,接下来,它运行所有以 字母 S 打头的脚本,带有参数"start" 启动进程或者服务。最后要指明,K和S脚本的执行顺序是基于排序的; 名为 S90mysql的脚本将在  S95httpd之前执行。 <br>
<br>
/etc/rc.d/rc3.d 中的脚本实际是对/etc/rc.d/init.d中文件的符号连接。 UNIX管理员可以在rc3.d中放制文件, 实际情况下Red Hat的init.d目录是所有脚本的第一位置,然后声称逻辑连接到 rc*.d 目录。手工作这些文件的管理很烦人、琐碎。  chkconfig现在接手这件事情! Red Hat 的这个chkconfig工具就是专为管理/etc/rc.d/rc[0-6].d中的符号连接而设计。 <br>
<br>
<br>
查看chkconfig 的项(Entries) <br>
<br>
chkconfig的二进制软件在 /sbin下,默认权限允许任何用户执行 。不过没有root权限的用户只能察看当前的chkconfig配置。输入 <br>
<br>
<br>
[root]# chkconfig --list | grep on <br>
<br>
输出的部分内容大致如下: <br>
<br>
amd 0ff 1ff 2ff 3ff 4n 5n 6ff <br>
apmd 0ff 1ff 2n 3ff 4n 5ff 6ff <br>
arpwatch 0ff 1ff 2ff 3ff 4ff 5ff 6ff <br>
atd 0ff 1ff 2ff 3n 4n 5n 6ff <br>
autofs 0ff 1ff 2ff 3ff 4ff 5ff 6ff <br>
named 0ff 1ff 2ff 3ff 4ff 5ff 6ff <br>
bootparamd 0ff 1ff 2ff 3ff 4ff 5ff 6ff <br>
keytable 0ff 1ff 2n 3n 4n 5n 6ff <br>
crond 0ff 1ff 2n 3n 4n 5n 6ff <br>
syslog 0ff 1ff 2n 3n 4n 5n 6ff <br>
netfs 0ff 1ff 2ff 3n 4n 5n 6ff <br>
network 0ff 1ff 2n 3n 4n 5n 6ff <br>
<br>
在输出的每一行,最开始的段代表在 /etc/rc.d/init.d中的init脚本名。其余的区段表示脚本进入各个运行级时的各运行级0-6 的状态。 例如,crond应当在进入运行级2,3, 4,5 的时候启动,当进入 0, 1 and 6的时候停止。我们可以通过find命令查找在 /etc/rc.d中所有crond结尾的文件确信我们设置的正确性: <br>
<br>
[root]# find /etc/rc.d -name '*crond' -print <br>
/etc/rc.d/init.d/crond <br>
/etc/rc.d/rc0.d/K60crond <br>
/etc/rc.d/rc1.d/K60crond <br>
/etc/rc.d/rc2.d/S40crond <br>
/etc/rc.d/rc3.d/S40crond <br>
/etc/rc.d/rc4.d/S40crond <br>
/etc/rc.d/rc5.d/S40crond <br>
/etc/rc.d/rc6.d/K60crond <br>
<br>
注意chkconfig报告的每个 "off" 节 (0, 1, 6), 一个 kill脚本存在 script is in place 每一个"on" 节 (2, 3, 4, 5),有一个 start脚本。 接下来,执行一个不同的 find 命令以确信每个发现的文件的类型: <br>
<br>
[root]# find /etc/rc.d -name '*crond' -exec file {} ; <br>
/etc/rc.d/init.d/crond: Bourne shell script text <br>
/etc/rc.d/rc0.d/K60crond: symbolic link to <br>
../init.d/crond <br>
/etc/rc.d/rc1.d/K60crond: symbolic link to <br>
../init.d/crond <br>
/etc/rc.d/rc2.d/S40crond: symbolic link to <br>
../init.d/crond <br>
/etc/rc.d/rc3.d/S40crond: symbolic link to <br>
../init.d/crond <br>
/etc/rc.d/rc4.d/S40crond: symbolic link to <br>
../init.d/crond <br>
/etc/rc.d/rc5.d/S40crond: symbolic link to <br>
../init.d/crond <br>
/etc/rc.d/rc6.d/K60crond: symbolic link to <br>
../init.d/crond <br>
<br>
这表明在init.d中找到的crond是一个shell脚本,找到的所有其他的文件都是对 crond 脚本的符号连接。 <br>
<br>
调整chkconfig项 <br>
<br>
<br>
调整chkconfig的 项几乎和列出现在的设置一样容易。格式: <br>
<br>
chkconfig [--level &lt;运行级&gt;] &lt;名字&gt; <br>
<br>
例如,如果我们决定在运行级 2禁止crond, <br>
<br>
# chkconfig --level 2 crond off <br>
<br>
(root执行) 会在运行级2关掉crond. 运行 chkconfig --list会确信crond的配置已经被调整。 更进一步,下面的find 命令command 显示一个 kill脚本已经在目录rc2.d中代替了 start脚本 : <br>
<br>
[root]# find /etc/rc.d -name '*crond' -print <br>
/etc/rc.d/init.d/crond <br>
/etc/rc.d/rc0.d/K60crond <br>
/etc/rc.d/rc1.d/K60crond <br>
/etc/rc.d/rc2.d/K60crond <br>
/etc/rc.d/rc3.d/S40crond <br>
/etc/rc.d/rc4.d/S40crond <br>
/etc/rc.d/rc5.d/S40crond <br>
/etc/rc.d/rc6.d/K60crond <br>
<br>
紧记 chkconfig不是立即自动禁止或激活一个服务的 它只是简单的改变了符号连接,超级用户可以用这个命令  /etc/rc.d/init.d/crond stop立刻禁止crond服务。最后,你可以用一个命令行激活/禁止多个运行级的某个命令 。例如输入: <br>
<br>
chkconfig --levels 2345 crond on <br>
<br>
会设定 crond 在运行级2, 3, 4 和 5启动。 <br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -