`
netli
  • 浏览: 74437 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CentOS LInux 启动关闭、服务管理

阅读更多
CentOS下添加自启动及系统服务
1、运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig --add httpd来添加,但是提示:httpd服务不支持 chkconfig。需要编辑/etc/rc.d/init.d/httpd,添加以下注释信息:
# chkconfig: 345 85 15
# descrīption: Apache
第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
保存后执行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。
2、运行chkconfig --list,httpd在其中。
3、   /sbin/chkconfig 
       chkconfig <服务名> on  或
       chkconfig [--level <启动级别>] <服务名> <on|off|reset|resetpriorities>
-----------------------------------------------------------------------------------------------------
CentOS LInux启动关闭和服务管理(zt)
2008-04-06 10:10

 

CentOS启动顺序:

1.当我按下源按,把源投入到机器中后,首先被启动执行的就是BIOSBasicInput/Output System)程序。BIOS的功能是......并且访问512BitMBRMaster Boot Record)。
2.经BOIS的控制,将MBRBoot Record入内存中。里就要说说LinuxBoot程序了,LinuxBoot程序有GRUBLILO,而CentOSBoot程序是GRUB。
3.通Boot程序,访问中的Linux内核程序。
4.将内核程序入内存中。
5.内核程序用完成后,通内核访问中将要用到的其他文件
内核第一个执行的文件是/sbin/init,而这个文件的设置和定义文件是/etc/inittab这个文件,也就是说/sbin/init按照/etc/inittab的定义来执行下一步的启动,那我们就要看看/etc/inittab文件是怎么回事儿了。

[root@linux ~]# cat -n /etc/inittab
    1   #
    2   # inittab    This file describes how the INIT process should set up
    3   #             the system in a certain run-level.
    4   #
    5   # Author:    Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
    6   #             Modified for RHS Linux by Marc Ewing and Donnie Barnes
    7   #
    8  
    9   # Default runlevel. The runlevels used by RHS are:
10   # 0 - halt (Do NOT set initdefault to this)
11   # 1 - Single user mode
12   # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
13   # 3 - Full multiuser mode
14   # 4 - unused
15   # 5 - X11
16   # 6 - reboot (Do NOT set initdefault to this)
17   #
18   id:3:initdefault: ← 默认的启动模式
19  
20   # System initialization.
21   si::sysinit:/etc/rc.d/rc.sysinit ← boot时的处理
22  
23   l0:0:wait:/etc/rc.d/rc 0     ←   23-29行,各启动模式的处理,分别启动/etc/rc.d/rcX.d脚本
24   l1:1:wait:/etc/rc.d/rc 1
25   l2:2:wait:/etc/rc.d/rc 2
26   l3:3:wait:/etc/rc.d/rc 3
27   l4:4:wait:/etc/rc.d/rc 4
28   l5:5:wait:/etc/rc.d/rc 5
29   l6:6:wait:/etc/rc.d/rc 6
30  
31   # Trap CTRL-ALT-DELETE
32   ca::ctrlaltdel:/sbin/shutdown -t3 -r now ← Ctrl+Alt+Del被激活时的处理
33  
34   # When our UPS tells us power has failed, assume we have a few minutes
35   # of power left.   Schedule a shutdown for 2 minutes from now.
36   # This does, of course, assume you have powerd installed and your
37   # UPS connected and working correctly.  
38   pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" ← 电源off时的处理
39  
40   # If power was restored before the shutdown kicked in, cancel it.
41   pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" ← 电源on时的处理
42  
43  
44   # Run gettys in standard runlevels ←   45-50行是6个虚拟终端
45   1:2345:respawn:/sbin/mingetty tty1
46   2:2345:respawn:/sbin/mingetty tty2
47   3:2345:respawn:/sbin/mingetty tty3
48   4:2345:respawn:/sbin/mingetty tty4
49   5:2345:respawn:/sbin/mingetty tty5
50   6:2345:respawn:/sbin/mingetty tty6
51  
52   # Run xdm in runlevel 5
53   x:5:respawn:/etc/X11/prefdm -nodaemon ← 启动模式5的时候,启动/etc/X11窗口系统
[root@linux ~]#


在以上的这个文件中,#开头的文件是注释文件,可以忽略不看,但是能够很好的帮我们了解文件。
这个文件中的定义形势如下:
通过下表的说明去看这个文件,就清晰明了的多了!

<id>:<runlevel>:<action>:<process>

   id 不重复的任意数字                                                                  
runlevel 0~6的启动级别(模式)
action
initdefault 定义默认时的启东级别(模式)
sysinit 引导(boot)中执行
wait 引导中执行一次,直到init进程为止
respawn 进程停止的情况下,再启动
powerfall 当接收到电源异常信号时,执行
ctrlaltdel 当接收到Ctrl+Alt+Del指令时,执行
process

定义被执行的命令

 

通过上面的说明,我想你应该可以明白/etc/inittab中的定义是怎么一回事儿了。下面我们重点看18,21,26行(其他的自己研究)。通过上表我们可以知道:

 

  • 18行的定义是默认的启动级别是“3“文本模式。
  • 21行的定义是启动的过程中执行/etc/rc.d/rc.sysinit文件(启动级别是空,也就是说无论什么级别都执行这个文件),这个文件很长有差不多1000行的内容,主要功能是启动网络,读取文件系统,使swap有效化和调入模块等动作。
  • 26行的定义和上面的18行的定义是对应的,也就是说18行定义的启动级别是"X",那么就执行文件23到29行定义中的"X"。

   这里18行定义的是启动级别3,就执行26行中启动级别3的定义,执行/etc/rc.d/rc脚本文件(控制文件),并将18行定义的启动级别以参数的形势交给/etc/rc.d/rc文件进行处理。这里我们看到“l3:3:wait:/etc/rc.d/rc 3”是把启动级别3交给文件rc处理,那我们有必要看看rc文件都定义了什么。
/etc/rc.d/rc文件内容如下:

[root@linux ~]# cat -n /etc/rc.d/rc
    1   #! /bin/bash
    2   #
    3   # rc          This file is responsible for starting/stopping
    4   #             services when the runlevel changes.         
    5   #
    6   # Original Author:   
    7   #             Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
    8   #
    9  
10   # check a file to be a correct runlevel script
11   check_runlevel ()
12   {
13       # Check if the file exists at all.
14       [ -x "$1" ] || return 1
15  
16       # Reject backup files and files generated by rpm.
17       case "$1" in
18                *.rpmsave|*.rpmorig|*.rpmnew|*~|*.orig)
19                          return 1
20                          ;;
21       esac
22       return 0
23   }
24  
25   # Now find out what the current and what the previous runlevel are.
26   argv1="$1"
27   set `/sbin/runlevel`
28   runlevel=$2
29   previous=$1
30   export runlevel previous
31  
32   . /etc/init.d/functions
33  
34   # See if we want to be in user confirmation mode
35   if [ "$previous" = "N" ]; then
36       if [ -f /var/run/confirm ]; then
37                echo $"Entering interactive startup"
38       else
39                echo $"Entering non-interactive startup"
40       fi
41   fi
42  
43   # Get first argument. Set new runlevel to this argument.
44   [ -n "$argv1" ] && runlevel="$argv1"
45  
46   # Is there an rc directory for this new runlevel?
47   [ -d /etc/rc$runlevel.d ] || exit 0
48  
49   # First, run the KILL scripts.
50   for i in /etc/rc$runlevel.d/K* ; do
51       check_runlevel "$i" || continue
52  
53       # Check if the subsystem is already up.
54       subsys=${i#/etc/rc$runlevel.d/K??}
55       [ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] \
56                || continue
57  
58       # Bring the subsystem down.
59       if egrep -q "(killproc |action )" $i ; then
60                $i stop
61       else
62                action $"Stopping $subsys: " $i stop
63       fi
64   done
65  
66   # Now run the START scripts.
67   for i in /etc/rc$runlevel.d/S* ; do
68       check_runlevel "$i" || continue
69  
70       # Check if the subsystem is already up.
71       subsys=${i#/etc/rc$runlevel.d/S??}
72       [ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] \
73                && continue
74                  
75       # If we're in confirmation mode, get user confirmation
76       if [ -f /var/run/confirm ]; then
77                confirm $subsys
78                test $? = 1 && continue
79       fi
80  
81       update_boot_stage "$subsys"
82       # Bring the subsystem up.
83       if [ "$subsys" = "halt" -o "$subsys" = "reboot" ]; then
84                export LC_ALL=C
85                exec $i start
86       fi
87       if egrep -q "(daemon |action |success |failure )" $i 2>/dev/null \
88                          || [ "$subsys" = "single" -o "$subsys" = "local" ]; then
89                $i start
90       else
91                action $"Starting $subsys: " $i start
92       fi
93   done
94   rm -f /var/run/confirm
95   if [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --ping ; then
96 /usr/bin/rhgb-client --quit
97   fi
[root@linux ~]#

在这个文件中我们看看如下的几行:

  • 50行以K开头的脚本文件
  • 60行执行stop
  • 67行以S开头的脚本文件
  • 91行执行start

在这个文件中,每个程序块的部分都有注释(#开头的行),如果有兴趣的话可以自行研究一下。似乎不是那么太难,就是check→do,确认后执行,判断后执行的样子。

rc.d目录下面的文件:

[root@linux ~]# ls -l /etc/rc.d
总用量 112
drwxr-xr-x   2 root root   4096 12月 28 12:45 init.d
-rwxr-xr-x   1 root root   2352 2004-03-17   rc
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc0.d
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc1.d
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc2.d
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc3.d
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc4.d
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc5.d
drwxr-xr-x   2 root root   4096 12月 28 12:45 rc6.d
-rwxr-xr-x   1 root root 220 2003-06-24   rc.local
-rwxr-xr-x   1 root root 27584   8月 13 17:10 rc.sysinit
[root@linux ~]#

我们看到了,在这个目录下面,有刚才提到的rc文件,还有另外的一些文件,我们来简单说明一下。

1. init.d
   这个不是文件,是一个目录,这个目录下面存放着各各服务的控制脚本,这下面的文件和你安装了些什么软件包有关系。如果你有兴趣你可以察看他们的脚本文件,接下来的说明中我们还会说到他,因为/etc/rc.d/rcX.d下的文件和这个init.d下面的文件是通过软连接相连的。

2. rc
   这个文件我们上面提到过,跳过了。

3. rc.loca
   这个文件也许会用到,如果你安装了一些软件或服务,并非系统标准的服务,比如手动的安装了Httpd,这样你用chkconfig命令是无法操作httpd的,开启服务器的时候也并不默认的启动这个httpd服务,这个时候你就可以将启动命令写到这个文件中,让开机启动服务完毕之后,最后启动这个httpd服务,注意是最后。这里说的httpd只是一个例子,将来也许会有很多的自己安装的服务会用到这个文件,知道一下,要用到的时候自然就明白。当然还有另外一种方法,就是自己写一个启动脚本文件,让系统开机时读取脚本文件来对httpd进行启动操作

4. rc.sysini
   我们上面提到过这个文件,这个文件是在boot的时候就被执行的脚本,它的任务是初始化系统的网络,设定hostname,欢迎信息表示,时钟设置,挂载文件系统等。有兴趣可以读它的脚本文件。

5. rcX.d
   这个rcX.d里面的X代表了0~6的数字(6种启动模式)。我们看到了它们都是目录,下面放着的都是我们上面说的/etc/rc.d/init.d下面文件的link。这里我们已rc3.d为例子,简单说明一下。
   在察看这个文件的时候注意2点:
##第一:ls -l 察看它们的详细信息,看看他们的link指向
##第二:ls -l 察看它们的文件名的头字母,形式应该是这样的[S或K <数字> <名称>]的形势。S代表启动,K代表停止。
   不要迷糊,/etc/rc.d/rc就定义了这个文件名称头文字的“S”和“K”。也就是开机的时候,已S开头的脚本文件别执行,这个服务就被开机运行;那么已K开头的文件不被执行,这个文件所控制的服务也不被执行,这个文件控制的服务也不被开机运行。
   这样看来,我们在给服务器左右化的时候,就可以直接的将相应的启动模式(rc0.d~rc6.d)下的相应服务控制脚本的文件名改掉(S改成K,K改成S),就能够简单的优化开机时系统将运行哪儿些个服务。
   如果通过命令来控制的话,那命令是chkconfig命令.......编辑中......

   如果你察看过rc0.d~rc6.d的目录下的文件名称,你会发现,他们以S开都得文件名数量是不同的。
  
/etc/rc.d/rc3.d下都有什么(一部分而已,你可以在自己的系统下面察看全部)

[root@linux ~]# ls -l /etc/rc.d/rc3.d
合計 224
lrwxrwxrwx   1 root root 21   1月   5 05:24 K01tog-pegasus -> ../init.d/tog-pegasus
lrwxrwxrwx   1 root root 13   1月   5 05:12 K01yum -> ../init.d/yum
lrwxrwxrwx   1 root root 24   1月   5 05:12 K02NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx   1 root root 15   1月   5 05:12 K03rhnsd -> ../init.d/rhnsd
lrwxrwxrwx   1 root root 19   1月   5 05:08 K05saslauthd -> ../init.d/saslauthd
lrwxrwxrwx   1 root root 16   1月   5 05:11 K10psacct -> ../init.d/psacct
lrwxrwxrwx   1 root root 17   1月   5 05:25 K12FreeWnn -> ../init.d/FreeWnn
lrwxrwxrwx   1 root root 13   1月   5 05:12 K20nfs -> ../init.d/nfs
lrwxrwxrwx   1 root root 14   1月   5 05:11 K24irda -> ../init.d/irda
lrwxrwxrwx   1 root root 16   1月   5 05:10 K50ibmasm -> ../init.d/ibmasm
lrwxrwxrwx   1 root root 17   1月   5 05:12 K50netdump -> ../init.d/netdump
lrwxrwxrwx   1 root root 16   1月   5 05:26 K73ypbind -> ../init.d/ypbind
[root@linux ~]#

接下来我们看看控制服务的一些工具
chkconfig
setup
system-config-services
我们分别来看看这3个工具(如果还有别的,告诉我)

chkconfig
这个工具我们很熟悉,并且在我们的网站配置祥解中也提到过他的使用。
执行权限:root
命令路径:/sbin/chkconfig
使用法:  
      chkconfig <服务名> on          #这个和接下来的off这个其实就是把以K开头的脚本文件从命名
      chkconfig <服务名> off          #如果你有兴趣自己试验一下就知道了
      chkconfig --list [服务名]
      chkconfig --add <服务名>
      chkconfig --del <服务名>
      chkconfig [--level <启动级别>] <服务名> <on|off|reset|resetpriorities>

setup
是系统综合的配置工具,命令行下也可以用。这个不多说,操作一下就知道怎么回事了。

system-config-services
如果你安装了gnome这样的窗口桌面系统,你也可以使用这个工具来体验下鼠标点击带来的方便。(如果你安装了桌面系统,可以# system-config加Tab键,会有很多工具的执行命令,体会下。)

主要服务参照:
http://www.centospub.com/bbs/viewthread.php?tid=1851&extra=page%3D1

以上是Linux系统(CentOS)的启动流程和服务管理相关的一点儿知识,如果有不足大家补充。非常感谢纠错的朋友们,感谢你们的支持。

from:http://www.centospub.com/bbs/viewthread.php?tid=1295&highlight=

--End--

分享到:
评论

相关推荐

    CentOS MySQL启动和关闭命令

    CentOS MySQL启动和关闭命令

    Linux下Tomcat的启动、关闭、杀死进程

    Linux下Tomcat的启动、关闭、杀死进程

    linux虚拟主机管理wdcp v1.1 build 20110423

    wdcp (WDlinux Control Panel)...停止,启动,设置随系统启5 在线端口管理,可检测开通端口,关闭端口6 在线管理进程,查看进程,终止进程KILL7 在线设置IP地址,增加,删除8 在线内存管理,查看内存使用情况,可在线释放内存9 在

    CentOS7设置jar应用程序开机启动的方法

    没有用Jenkins这种自动化部署工具,在linux centos中部署jar包项目时遇到一个坑,通过xshell远程连接服务器,在系统中使用“java -jar”命令启动jar包时,输出日志会占据当前终端页面,如果关闭终端窗口的话,...

    CentOS7防火墙设置

    Linux下教你如何启动关闭防火墙,怎么查看防火墙当前状态

    linux之centos7防火墙基本使用详解

    2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。 启动防火墙: systemctl start firewalld.service 关闭防火墙: systemctl stop firewalld.service 重启防火墙: ...

    Apache-tomcat-6.0.53 for Linux(Redhat/CentOS测试通过)

    提供tomcat6 for linux,给急需使用的朋友应急,官网上不好找了。Redhat6.6下测试通过。安装说明: 1.解压并且解包 输入命令:tar -zxvf apache-tomcat-6.0.53.tar.gz 在目录下有apache-tomcat-6.0.53文件夹,重命名...

    Centos 6的远程桌面 Xrdp

    #将mysqld 放入linux启动管理体系中 chkconfig --add xrdp #查看全部服务在各运行级状态 chkconfig --list xrdp #只要运行级别3启动,其他都关闭 chkconfig --levels 245 xrdp off # 开启xrdp service xrdp start

    Linux中Oracle服务启动和停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle。 一、在Linux下...

    CentOS7与CentOS6的区别总结

    运行级别对应表、防火墙、开放和关闭端口、查看端口状态、查看系统上所有的服务、原来的 service 命令与 systemctl 命令对比、设置开机启动/不启动服务等等。

    Linux FTP服务配置

    由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。 客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮: 由于...

    Linux平台 进程 监控 自动重启 恢复脚本, java, springboot 通过

    Linux平台 下 进程监控自动 重启 恢复脚本, 测试 centos平台下 java, springboot 通过

    十分钟搭建 linux 7 DNS服务器和WEB服务器

    关闭防火墙,关闭selinux,安装bind,bind-utils设置named.service开机自启动,设置防火墙开机时不启动 ,然后重启系统: 进入 /etc/selinux/config文件后修改SELINUX=disabled vi /etc/selinux/confi

    Centos 6.5 配置网络地址和配置防火墙.docx

    Centos 6.5 配置网络地址和配置防火墙,包含配置IP地址,重启网卡,测试网络,关闭防火墙开机自启动等(文件内容来自51CTO博客)

    Linux复习题综合练习

    Linux复习题综合练习及答案仅选择题 1、Linux的第二块硬盘的第一个分区应该表示为:() A. /hda1 B. /hdb1  C. /hdba D. /hda2 2、在Linux中有关IDE设备命名编号正确的有( ) A. sda 第一个 IDE 控制器...

    forever-service:永久提供节点脚本即服务,使其在启动时自动启动,可跨各种Linux发行版和OS使用

    正常关闭服务作为默认行为。 支持平台 亚马逊Linux 红帽Linux CentOS的 Ubuntu(upstart,&gt; = 15.04的sysv后备,不支持systemd) 德比安 树莓派 OSMC Linux 浅顶软呢帽21 OracleLinux 基本操作系统 本生实验...

    vm虚拟机centos7桥接模式连接外网.docx

    使用的是Centos7.4版本,记录了我的相关操作,第一步:关闭主机防火墙和虚拟机防火墙 相关命令: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 第...

    Kiwi-Syslog日志服务器搭建.doc

    让Rsyslog进程自动启动,运行以下命令: CentOS 7:# systemctl enable rsyslog.service CentOS 6:# chkconfig rsyslog on 7. 华为交换机设置Syslog日志服务器日志获取: &lt;Huawei&gt; system-view [Huawei]info-...

    vmtools-linux.iso

     等待INSTALL运行完成后,这时键入 STARTX 命令,启动LINUX图形界面,vm中不再提示没有安装虚拟机工具了 在Ubuntu下安装VMware-Tools不像在Windows下安装容易,昨晚整了挺长时间终于安上了.方法在下面. 感谢提供方法的...

    Linux下安装部署JDK7+Tomcat7+MySQL5.6+Redis3.07

    1. 安装规划 2....搭建服务器,安装centos1.7操作系统,jdk1.7,tomcat7,mysql5.6,redis3.07。 【课程计划】 第一节是系统安装,jdk1.7,tomcat7安装配置 第二节是mysql安装配置 第三节是redis安装配置

Global site tag (gtag.js) - Google Analytics