init系统sysvinit,UpStart 简介及chkconfig和service
来源:互联网 发布:娱乐圈八卦 知乎 编辑:程序博客网 时间:2024/06/05 02:38
- 运行级别runlevle
- 在liunx下自动启动一些服务需要配置一些参数
- chkconfig
- UpStart
- UpStart 工作配置文件
常见的是init 系统大致有:sysvinit,UpStart 和 systemd。
Sysvinit 用术语 runlevel 来定义”预订的运行模式”。Sysvinit 检查 ‘/etc/inittab’ 文件中是否含有 ‘initdefault’ 项。 这告诉 init 系统是否有一个默认运行模式。
sysvinit会依次加载如下文件
/etc/inittab /etc/rc.d/rc.sysinit/etc/rc.d/rc 和/etc/rc.d/rcX.d/ (X 代表运行级别 0-6)/etc/rc.d/rc.localX Display Manager(如果需要的话)
运行级别runlevle
linux系统runlevle分为7个,如
# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, 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)
在liunx下自动启动一些服务需要配置一些参数。
每个 runlevel X 都有一个这样的目录,目录名为/etc/rc.d/rcX.d;如rc.0, rc.1, rc.2, rc.3, rc.4, rc.5, and rc.6
或者rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, and rc6.d.
; 在这些目录下存放着很多不同的脚本。文件名以 S 开头的脚本就是启动时应该运行的脚本,S 后面跟的数字定义了这些脚本的执行顺序(启动优先级),可以用chkconfig来维护;相应的 k 表示关闭时调用的。在/etc/rc.d/rcX.d 目录下的脚本其实都是一些符号连接文件,真实的脚本文件存放在/etc/init.d 目录下。
init.d下的每一个文件都有类似下面的话:
# chkconfig: 2345 20 80# description: Saves and restores system entropy pool for \# higher quality random number generation.
看有chkconfig的那一行, 2345表示在runlevel 2 3 4 5下被启动,
20为启动优先级(start priority), 80为关闭优先级(stop priority). 即在rc3.d你可能看到 S20 或 K80.
Redhat下的setup也是用它处理的. 你可以再参考一下man chkconfig. 有一点注意, 优先即是一个两位数.
另外的三个文件是这样的
先执行rc.sysinit 完成了包括mount分区 激活swap 加载modules等重要的工作. 再执行rc.local 完成一些本地的处理, 缺省情况下, 它几乎什么都没作.最后是执行rc 启动所有的服务.
假如/etc/inittab文件有如下信息:
id:4:initdefault:l0:0:wait:/etc/rc.d/rc.0l6:6:wait:/etc/rc.d/rc.6x1:4:wait:/etc/rc.d/rc.4
表示运行级别4是默认的runlevel,运行级别4的脚本都在 /etc/rc.d/rc.4
chkconfig
chkconfig用来检查、设定系统的各种服务updates and queries runlevel information for system services
显示所有chkconfig知道的service状态[状态为on或off]
chkconfig --list
假定存在如下脚本:
/etc/init.d/scriptname restart/etc/init.d/scriptname start/etc/init.d/scriptname stop
要实现在runlevel 3、4和5下随机器启动,则运行
#随机器启动chkconfig --level 345 scriptname on#还可以通过sysvinit的server命令启动service scriptname restart#如果需要关闭chkconfig scriptname off
UpStart
Ubuntu UpStart 是比sysvinit更快的系统,但是他兼容了sysvinit系统。主要的概念是 job 和 event,一个job就是sysvinit里面的一个脚本。
upstart的工作配置文件存放在/etc/init
下面,是以.conf 作为文件后缀的文件
/etc/init/*.conf # 文件名就是 service name
Upstart也可以处理sysvinit的脚本,他是通过以下几个job完成的:
/etc/init/rc.conf/etc/init/rcS.conf
打开rc.conf,注意到最后一行:exec /etc/init.d/rc $RUNLEVEL
就是sysvinit中/etc/inittab中的各runlevel对应的脚本。
UpStart 工作配置文件
可以通过命令initctl来操作这些job,就像sysvinit中的server命令一样。目录/etc/init
脚本体现了job的名字,如
/etc/init/rc-sysinit.conf #其job名为rc-sysinit/etc/init/net/apache.conf #其job名为net/apache
配置文件job包含一个或者多个小节(stanza)。
1. exec and script
每个job都必须包含exec或者script小节,”exec”配置工作需要运行的命令;用”script”关键字定义需要运行的脚本;
2. pre-start script and post-stop script
在job运行之前,执行 post-start 动作,之后执行 pre-stop 段
3. start on and stop on
定义job启动和关闭的依赖性。如果start on中指定多个事件,表示该job的开始需要依赖多个事件发生; stop on定义工作在什么情况下需要停止
4. console output|owner
默认job的stdin,stdout,stderr都会重定向到/dev/null
5. 更多的job配置可以查看the init(5) man page.
An introduction to services, runlevels, and rc.d scripts
http://blog.itpub.net/12798004/viewspace-1143979/
CentOS Init startup scripts
UbuntuBootupHowto
Upstart
Systemd vs sysvinit
man chkconfig
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
浅析 Linux 初始化 init 系统,第 2 部分: UpStart
浅析 Linux 初始化 init 系统,第 3 部分: Systemd
Comparison of init systems
- init系统sysvinit,UpStart 简介及chkconfig和service
- Ubuntu下的服务管理:UpStart和chkconfig,或sys V init ?
- Linux 初始化 init 系统,UpStart
- sysvinit启动脚本和upstart启动脚本的编写
- Linux系统init过程之sysvinit
- Linux 初始化 init 系统1---sysvinit
- linux sysvinit与upstart(1)
- linux sysvinit与upstart(2)
- linux sysvinit与upstart(3)
- Linux系统init过程之 UpStart
- Linux 初始化 init 系统2---UpStart
- Linux 初始化 init 系统(UpStart)
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析Linux初始化(init)系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- u3d学习资料
- Log4j——JAVA系统日志
- div+css 开山篇
- Spring BlazeDS Integration之spring security(5)---自定义rememberMeServices的注意事项
- vector, list, deque
- init系统sysvinit,UpStart 简介及chkconfig和service
- 自己写的android Launcher没有出现在Launcher启动选择界面问题
- 微信公众平台开发:进阶篇(在网页上添加分享到朋友圈、发送给好友、分享等按钮)
- 读《跨界——开启互联网与传统行业融合新趋势》
- 项目开发环境搭建手记(2.Jdk安装——替代原有的OpenJDK)
- VMware Workstation 11正式版的安装
- 1011. World Cup Betting (20)
- Java泛型、枚举与for语句的简化写法1
- 第二十四周项目7-读懂“共同体”