Linux关机命令深入解析:sysvinit源码揭秘
5星 · 超过95%的资源 需积分: 10 85 浏览量
更新于2024-09-17
收藏 129KB PDF 举报
本文档深入分析了Linux系统中的关机命令,主要包括shutdown、reboot、halt、poweroff、telinit和init。这些命令均源于sysvinit软件包,它是一个广泛使用的初始化系统,负责管理系统的启动和关机过程。由于它们之间的逻辑关系,如poweroff和reboot实际上是halt命令的别名,通过软连接实现。
在源码层面,Makefile揭示了这些命令之间的依赖性,比如通过`ln-sf`创建的软连接,使得`halt`链接到`sbin/reboot`和`sbin/poweroff`,`telinit`链接到`sbin/init`。通过终端运行`ls -l /sbin/poweroff`等命令,可以看到这些链接的实际效果。
halt命令有多个可选参数,如:
- `-n`:防止同步系统调用,在修复根分区后防止使用旧超级块覆盖新修改。
- `-w`:仅记录wtmp日志,但不执行实际关机或重启。
- `-d`:禁用wtmp记录,此选项已包含在 `-n`中。
- `-f`:强制关机或重启,跳过常规的shutdown过程。
- `-h`:使硬盘进入待机模式。
- `-i`:关闭所有网络接口。
- `-p`:默认选项,等同于调用poweroff。
当用户执行halt时,会首先检查命令行参数,如果是poweroff或reboot,会根据具体选项执行相应的操作。如果不是,halt会进一步判断用户权限,只有root用户才能执行非默认操作。如果普通用户尝试执行,halt将退出。
当不带参数或参数中不包含特殊选项时,halt会依据`INIT_VERSION`和`RUNLEVEL`环境变量来决定如何执行,这涉及到系统启动阶段的不同级别管理。
理解Linux的关机命令及其工作原理有助于系统管理员更好地控制系统的运行状态,同时也展示了Linux系统中命令间的交互和模块化设计。通过分析源码,用户可以深入理解这些命令背后的逻辑和安全机制。
2021-09-06 上传
2021-09-14 上传
2021-11-05 上传
2021-09-13 上传
2021-09-27 上传
2021-10-29 上传
2021-09-30 上传
2021-09-27 上传
2021-09-06 上传
joeytong
- 粉丝: 7
- 资源: 25
最新资源
- ldc1000设计相关资料,可以检测金属和距离.zip
- resin-route:Resin.io设备可在Wi-Fi和以太网端口之间路由流量
- stm32简易指针式时钟.zip
- js-page-object:生成用于浏览器自动化测试的JS页面对象的错误想法
- haruspex:使用推测执行探索x86-64 ISA
- Search Administrator for Chrome-crx插件
- structs(三层结构).rar_java 3 tier example_java MVC_mvc_structs_子结构
- java毕设项目之基于java+springboot视频网站系统的设计与实现.zip
- IMUCalibration-Gesture-master_惯导解算_惯导_惯导卡尔曼_IMU解算_卡尔曼_源码.zip
- 行业文档-设计装置-包装纸板自动贴面机.zip
- videlibri:跨平台图书馆客户端可从本地设备访问任何OPAC和图书馆目录,例如,更新借阅的书籍或搜索图书馆中可用的其他书籍
- PtolemyJS:用于 JS 视频游戏的 2D 地图引擎
- kinject:内核Shellcode注入器
- ssa.rar_SSA _VBa_通讯录功能VBA
- Goodbye minecraftuser.jp-crx插件
- 通过python语言来实现gltf模型文件格式转glb模型文件格式.zip