linux的启动进程与服务

转载 2012年03月26日 09:09:20
当年对dos开机流程熟知,帮助我解决了不少问题。对于Linux的研究自然也少不了这部分基础知道。LINUX的启动过程究竟是怎么样的?它要启动哪些服务?这些服务是做什么用的? deflag的这篇文章值得一读。


本文以RED HAT LINUX9为范例介绍,其实大部分的LINUX都有相同的启动过程.
启动过程大致分为:

1)开机自检,读取MBR中的引导程序(比如,现在的GRUB,LILO引导器);
2)引导器根据用户所选择的系统,引导相应的操作系统,LINUX引导其内核程序;
3)LINUX内核负责启动系统的前期工作,加载INIT进程;(INIT是内核启动的第一个进程)
4)根据不同的运行级别,加载相应的服务;
5)最后,提示用户输入用户名和登录密码;
看看进程吧
一,init进程
init进程是系统引导运行的第一个进程,其是所有进程的祖先,其进程号(PID)永远都是"1".init进程按照
其配置文件,引导运行系统所需的其它进程.
我们看看init进程的配置文件
#more /etc/inittab
#
#inittab   This file describes how the INIT process should set up
# the system in a certain run-level
#
#Author:  Miquel van Smoorenburn,
# Modified for THS Linux by Marc Ewing and Donnie Barnes
#
#Default runlevel.The runlevels used by RHS are:
# 0-halt(DO NOT set initdefault to this)
# 1-Single user mode
# 2-Multiuer,without NFS(The same as 3,if you do not have networking)
# 3-Full multiuser mode
# 4-unused
# 5-X11
# 6-reboot(DO NOT set initdefault to this)
#
id:3:initdefault:
#System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
10:0:wait:/etc/rc.d/rc 0
11:1:wait:/etc/rc.d/rc 1
12:2:wait:/etc/rc.d/rc 2
13:3:wait:/etc/rc.d/rc 3
14:4:wait:/etc/rc.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
#Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

pf::powerfail:/sbin/shutdown -f -h +2 "Power failure;System Shutting Down"
pr::12345:powerokwait:/sbin/shutdown -c "Power Restored;Shutdown Cancelled"
#Run gettys in standard rnlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6


分析一下INITTAB文件:
inittab是作为init进程的配置文件.用于描述一些系统启动时相应的运行级别和服务进程.
可以看到,inittab文件都有一个通用格式,为:
id:runlevel:action:process
id----用于在inittab文件惟一标识一个配置信息,可以有1~4个字符组成.
runlevel----指定配置信息在哪个运行级别上运行;
action---指定该条配置信息所要发生的动作.具体有以下几个动作:
1)initdefault--指定默认运行级别;
2)sysinit--表示此类进程在boot或bootwait类进程之前运行,运行级别字段被忽略.
3)wait---指定有进入指定运行级别后运行.
4)ctrlaltdel--这个大家很熟悉,重启作用.
5)powerfail,powerwait--指定UPS断电信号发生时所运行的命令.
6)respawn---在启动后重新运行(如控制台getty)
7)process---设置启动进程所进行的命令.
运行级别,一共有0~6六个运行级别,注意级别4没有指定使用.具体运行级别,在配置文件中已给出.
技巧:
#runlevel //查看当前运行级别.
N 3
#init n    //n为运行级别,用这个命令可以转换运行级别.
看看系统初始化脚本:
inittab文件指定作用rc.sysinit作为系统初始化脚本.
#grep sysinit /etc/inittab
有兴趣的用户可以自行阅读.

linux在的独立进程与服务程序
以redhat linux 9为例,它的服务程序有两种:独立服务和受xinetd管理的服务程序.注意其实xinetd也是

作为一个独立进程来运行的.
linux中的每个服务都有相应的运行脚本,可用于设置启动,停止,重启和查询服务等信息;所有的服务脚本

都写在"/etc/rc.d/init.d"中,脚本名称和服务器名称相对应,大都有说明,大家可自己查看,
各运行级别的脚本目录所在位置为:/etc/rc.d当中可以看到以0~6加在RC的后面,构成了相应的运行级别服

务脚本目录.可进入相应级别的脚本目录,查看其有什么设置.比如,我们进入级别3有脚本目录:
#ls /etc/rc.d/rc3.d/
K05saslauthd  K68ipsec K96pcmcia S17keytable  S55sshd
这里只列出一行进行分析,可以看到每个服务目录都有一些明显的特点,前面有一个"K"代表"KILL"是指这个服务在这个级别被停止.若前面有一个"s"表示"Start",表示这个服务在这个运行级别被启动.在K或S的后面有一些数字,这是服务的序号,当启动服务时,按序号从小到大启动,当停止服务时,按序号从大到小停止.

使用SHELL命令来停止或者运行服务---service
#service xinetd stop //停止运行xinetd服务
Stopping xinetd:
#service xinetd start //启动xinetd服务

技巧:有的时候我们利用LINUX进行上网时,不能联网,其实有些时候是由于LINUX防火墙的原因,我们可能关闭防火墙,使用这个命:#service iptables stop

服务启动状态的配置命令:
1. ntsysv
2. chkconfig,这个命令功能强大,看看吧:
  查看服务启动状态:#CHKCONFIG --LIST [SERVICES]
  E.G.:
  #chkconfig --list  //查看系统所有服务的启动状态.
  #chkconfig --list syslog //查看syslog服务的启动状态.

  设置独立服务的启动状态:#chkconfig --level

e.g.:
  #chkconfig --level 123 syslog off //表示syslog这个服务在1,2,3停止运行.

Linux的服务与进程管理

  • 2016年02月21日 14:12
  • 263KB
  • 下载

将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux,第 1 部分: 进程、线程和共享内存服务

概述 有很多方式可以将 Win32 C/C++ 应用程序移植和迁移到 pSeries 平台。您可以使用免费软件或者第三方工具来将 Win32 应用程序代码移到 Linux。在我们的方案中,我们决...

linux的守护进程与服务-概念

——摘自鸟哥的linux私房菜      例:1找出当前系统打开的“网络服务”有哪些  netstat -tulp              2找出所有监听网络的服务(包括套接字状态...

linux单进程服务保活supervise

1 概述 由于资源的有限或者投资等原因,服务器资源不够用,不能确保单个服务器跑单个服务,更别说做一些进程的主备高可用 在这种情况下也同样希望进程高可用,本次采用demontools提供的daemo...
  • wyl6019
  • wyl6019
  • 2016年11月24日 19:48
  • 668

Linux kill tomcat服务进程

PID杀死进程 查询tomcat进程命令:ps -ef |grep tomcat [root@RD-CD-APP122 ~]# ps -ef |grep tomcat root ...
  • boonya
  • boonya
  • 2016年12月29日 11:42
  • 522
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux的启动进程与服务
举报原因:
原因补充:

(最多只允许输入30个字)