位置: 编程技术 - 正文

详解Linux系统中的SysVinit的机制(linux那些事儿)

编辑:rootadmin

推荐整理分享详解Linux系统中的SysVinit的机制(linux那些事儿),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux那些事儿,linux 的ll,linux系统用法,linux中!,linux系统的,linux系统用法,linux系统的,linux系统的,内容如对您有帮助,希望把文章链接给更多的朋友!

SysV init是systemV风格的init系统,顾名思义,它源于SystemV系列UNIX。它提供了比BSD风格init系统更高的灵活性。是已经风行了几十年的UNIX init系统,一直被各类Linux发行版所采用。

(1) 什么是SystemV

SystemV,曾经也被称为AT&T SystemV,是Unix操作系统众多版本中的一支。它最初由AT&T开发,在年第一次发布。一共发行了4个SystemV的主要版本:版本1、2、3和4。SystemV Release4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头,例如”SysV初始化脚本“(/etc/init.d),用来控制系统启动和关闭,SystemV Interface Definition(SVID)是一个SystemV如何工作的标准定义。

(2)SysV init的运行级别

SysV init用术语runlevel来定义"预订的运行模式"。SysV init检查'/etc/inittab'文件中是否含有'initdefault'项。来告诉init系统是否有一个默认运行模式。如果没有默认的运行模式,那么用户将进入系统控制台,手动决定进入何种运行模式。SysV init中运行模式描述了系统各种预订的运行模式。通常会有8种运行模式,即运行模式0到6和S或者s。每种Linux发行版对运行模式的定义都不太一样。但0,1,6却得到了大家的一致赞同:0关机1单用户模式6重启通常在/etc/inittab文件中定义了各种运行模式的工作范围。比如RedHat定义了runlevel3和5。运行模式3将系统初始化为字符界面的shell模式;运行模式5将系统初始化为GUI模式。无论是命令行界面还是GUI,运行模式3和5相对于其他运行模式而言都是完整的正式的运行状态,计算机可以完成用户需要的任务。而模式1,S等往往用于系统故障之后的排错和恢复。很显然,这些不同的运行模式下系统需要初始化运行的进程,需要进行的初始化准备都是不同的。比如运行模式3不需要启动X系统。用户只需要指定需要进入哪种模式,SysV init负责执行所有该模式所必须的初始化工作。

(3)SysV init运行顺序

SysV init巧妙地用脚本,文件命名规则和软链接来实现不同的runlevel。首先,SysV init需要读取/etc/inittab文件。分析这个文件的内容,它获得以下一些配置信息:系统需要进入的runlevel;捕获组合键的定义;定义电源fail/restore脚本;启动getty和虚拟控制台;得到配置信息后,SysV init顺序地执行以下这些步骤,从而将系统初始化为预订的runlevelX:/etc/rc.d/rc.sysinit/etc/rc.d/rc和/etc/rc.d/rcX.d/(X代表运行级别0-6)/etc/rc.d/rc.localXDisplayManager(如果需要的话)

详解Linux系统中的SysVinit的机制(linux那些事儿)

1)rc.sysinit脚本功能

首先,运行rc.sysinit以便执行一些重要的系统初始化任务。在RedHat公司的RHEL5中(RHEL6已经使用UpStart了),rc.sysinit主要完成以下这些工作:激活udev和selinux;设置定义在/etc/sysctl.conf中的内核参数;设置系统时钟;加载keymaps;激活交换分区;设置主机名(hostname);根分区检查和remount;激活RAID和LVM设备;开启磁盘配额;检查并挂载所有文件系统;清除过期的locks和PID文件;

2)rc.d脚本

完成了以上这些工作之后,SysV init开始运行/etc/rc.d/rc脚本。根据不同的runlevel,rc脚本将打开对应runlevel的rcX.d目录(X就是runlevel),找到并运行存放在该目录下的所有启动脚本。每个runlevelX都有一个这样的目录,目录名为/etc/rc.d/rcX.d。在这些目录下存放着很多不同的脚本。文件名以S开头的脚本就是启动时应该运行的脚本,S后面跟的数字定义了这些脚本的执行顺序。在/etc/rc.d/rcX.d目录下的脚本其实都是一些软链接文件,真实的脚本文件存放在/etc/init.d目录下。如下所示:rc5.d目录下的脚本 复制代码代码如下:[root@www~]#ll/etc/rc5.d/lrwxrwxrwx1rootrootSepKdhcdbd->../init.d/dhcdbd....(中间省略)....lrwxrwxrwx1rootrootSepKcapi->../init.d/capilrwxrwxrwx1rootrootSepSmicrocode_ctl->../init.d/microcode_ctllrwxrwxrwx1rootrootSepSlvm2-monitor->../init.d/lvm2-monitor....(中间省略)....lrwxrwxrwx1rootrootSepSnetwork->../init.d/network....(中间省略)....lrwxrwxrwx1rootrootSepSlocal->../rc.locallrwxrwxrwx1rootrootSepSsmartd->../init.d/smartd....(底下省略)....

当所有的初始化脚本执行完毕。SysV init运行/etc/rc.d/rc.local脚本。rc.local是Linux留给用户进行个性化设置的地方。可以把自己私人想设置和启动的东西放到这里,一台LinuxServer的用户一般不止一个,所以才有这样的考虑。

(4)SysV init和系统关闭

SysV init不仅需要负责初始化系统,还需要负责关闭系统。在系统关闭时,为了保证数据的一致性,需要小心地按顺序进行结束和清理工作。比如应该先停止对文件系统有读写操作的服务,然后再umount文件系统。否则数据就会丢失。这种顺序的控制这也是依靠/etc/rc.d/rcX.d/目录下所有脚本的命名规则来控制的,在该目录下所有以K开头的脚本都将在关闭系统时调用,字母K之后的数字定义了它们的执行顺序。这些脚本负责安全地停止服务或者其他的关闭工作。

(5)SysV init的管理和控制功能

此外,在系统启动之后,管理员还需要对已经启动的进程进行管理和控制。SysV init软件包包含了一系列的控制启动,运行和关闭所有其他程序的工具。halt停止系统。init就是SysV init本身的init进程实体,以pid1身份运行,是所有用户进程的父进程。最主要的作用是在启动过程中使用/etc/inittab文件创建进程。killall5就是System V的killall命令。向除自己的会话(session)进程之外的其它进程发出信号,所以不能杀死当前使用的shell。last回溯/var/log/wtmp文件(或者-f选项指定的文件),显示自从这个文件建立以来,所有用户的登录情况。lastb作用和last差不多,默认情况下使用/var/log/btmp文件,显示所有失败登录企图。mesg控制其它用户对用户终端的访问。pidof找出程序的进程识别号(pid),输出到标准输出设备。poweroff等于shutdown-h–p,或者telinit0。关闭系统并切断电源。reboot等于shutdown–r或者telinit6。重启系统。runlevel读取系统的登录记录文件(一般是/var/run/utmp)把以前和当前的系统运行级输出到标准输出设备。shutdown以一种安全的方式终止系统,所有正在登录的用户都会收到系统将要终止通知,并且不准新的登录。sulogin当系统进入单用户模式时,被init调用。当接收到启动加载程序传递的-b选项时,init也会调用sulogin。telinit实际是init的一个连接,用来向init传送单字符参数和信号。utmpdump以一种用户友好的格式向标准输出设备显示/var/run/utmp文件的内容。wall向所有有信息权限的登录用户发送消息。不同的Linux发行版在这些SysV init的基本工具基础上又开发了一些辅助工具用来简化init系统的管理工作。比如RedHat的RHEL在SysV init的基础上开发了initscripts软件包,包含了大量的启动脚本(如rc.sysinit),还提供了service,chkconfig等命令行工具,甚至一套图形化界面来管理init系统。其他的Linux发行版也有各自的initscript或其他名字的init软件包来简化SysV init的管理。只要理解了SysV init的机制,在一个最简的仅有SysV init的系统下,可以直接调用脚本启动和停止服务,手动创建inittab和创建软连接来完成这些任务。因此理解SysV init的基本原理和命令是最重要的。甚至也可以开发自己的一套管理工具。

详解在Linux系统中如何管理systemd服务 (1)什么是单元在RHEL7之前,服务管理是分布式的被SysVinit或UpStart通过/etc/rc.d/init.d下的脚本管理。这些脚本是经典的Bash脚本,允许管理员控制服务的状

因个人需求Linux如何修改硬盘已挂载的目录 Linux系统硬盘挂载完目录后,通常是不会去修改它的,但有时因为工作或个人需求,要修改硬盘已挂载的目录,要如何操作呢?下面通过实例讲解Linux如

Fedora 如何升级Fedora 体验最新功能 Fedora版本于今年5月发布,在这次的更新中加入了不少新功能,且界面美观了很多,而很多用户的系统版本还停留在Fedora,Fedora要如何升级到Fedora

标签: linux那些事儿

本文链接地址:https://www.jiuchutong.com/biancheng/365486.html 转载请保留说明!

上一篇:用systemd-analyze分析Linux系统的启动性能(system的方法)

下一篇:详解在Linux系统中如何管理systemd服务(linux实用技巧)

  • 北京增值税发票打印边距设置
  • 企业借出去的钱收不回来
  • 一般纳税人劳务派遣税率
  • 运输费用的增值税税率
  • 房租租赁房产税由哪方缴纳
  • 视同销售的增值税如何计算
  • 当年亏损额为什么不能填?
  • 结转存货跌价准备冲减主营业务成本
  • 微信转账报销怎么转换成文字
  • 其他应收款款项性质有哪几种
  • 什么样的运输发动机最好
  • 短期借款有哪些
  • 分公司办理税务需要什么东西
  • 金蝶怎么填写凭证
  • 售后回租涉税
  • 季节性停工折旧吗
  • 铁路运输专用发票印花税处理
  • 一个公司帮另一个公司代付款
  • 固定资产报废变卖收入缴税账务处理
  • 收财务拨款的贷款合法吗
  • 二手车公司怎么开发票
  • 增值税专票过了3年能抵扣吗
  • 三代税款手续费申请流程
  • 工信部联企业[2011]300号 小型企业
  • 个人出租房屋税率表2023年
  • 大中小微企业划分标准2023年
  • 公司为员工负担个税怎么做账
  • 内部收益率计算公式及例题
  • 新公司没收入之前费用都走开办费吗
  • 企业收到政府拆迁补偿款要交税吗怎么做账
  • 白内障手术费用大概几天出院
  • window10下载cad2014
  • 小规模差额征税是什么意思
  • php ftp函数
  • 企业所得税扣除标准表
  • 餐饮行业采购
  • 圣三一教堂英文
  • php中数组的常用函数及用法
  • vue做项目的流程
  • 委托代销商品委托方和受托方会计分录
  • 中小企业的资产负债率均值是多少
  • 购买图书可以开增值税专票么?
  • 社保基数填错了 多扣多钱可以退款吗
  • 金蝶现金流量表不对怎么处理
  • 给员工买保险的好处和坏处
  • 累计摊销咋算
  • 小企业会计准则调整以前年度费用分录
  • 建筑企业会计科目的设置及核算
  • 福利费可以抵扣进项税
  • 非居民企业的所得一律适用20%的企业所得税税率
  • 预收账款和应收账款的转换
  • 会计上需要结转的科目
  • 自产商品对外赠送
  • 结转以后年度抵免的境外所得税怎么进行会计处理
  • 开发票四舍五入
  • 招标代理服务费计算器在线
  • 筹建期间开办费跨年
  • 开办费如何摊销成本
  • 个人到税务局开普票要交多少税
  • 年初建账的期初余额
  • mysql更改密码命令
  • mysql数据库用户名和密码怎么查看
  • 电脑网络唤醒功能
  • win10设置设备
  • WIN10系统中软件打开找不到网络共享盘
  • ubuntu 20.04桌面
  • 如何配置linux系统
  • ,linux
  • win7怎么使用打印机打印
  • 打开电脑显示配置windows,可是一直0%,怎么办
  • cocos creator构建发布
  • bat 批处理文件
  • python中字符
  • vue3.0diff
  • vue用户权限解决方案
  • Tasharen Fog of War v1.0战争迷雾插件的使用(含Unity5.0Bug解决)
  • android开源库
  • 常州税务局举报网站
  • 新税法折旧年限怎么算
  • 一般贸易和非一切贸易
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设