欢迎来到天天文库
浏览记录
ID:44416582
大小:114.00 KB
页数:6页
时间:2019-10-21
《Linux关机命令分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Linux关机命令分析任桥伟MSN:ilttv@hotmail.comEmail:ilttv@163.comlinux下有关关机重启的命令主要有:shutdown>reboothalt>poweroff^telinitsinito它们都可以达到关机或重启的目的,但是每个命令的工作流程并不一样。它们都山软件纽sysvinit产生,你可以从网上下载它的源码來分析各个命令的流程,同时,sysvinit也包含了与登陆等有关的命令。卜•面分析sysvinit-2.86软件包的源码,同时参考它们的手册來对它们深入了解。1从Makefil
2、e可以知道,上而的命令并不都是互相独立的,poweroffreboot是halt的链接,telinit是init的链接。In-sfhalt$(ROOT)/sbin/rebootIn・sfhalt$(ROOT)/sbin/poweroffIn-sfinit$(ROOT)/sbin/telinit在终端输入#Is-1/sbin/poweroff#Is-1/sbin/reboot#Is-1/sbin/telinit也可以看到上而的结果。2、halto参数说明:r-n]防止sync系统调用,它用在用fsck修补根分区Z后,以阻止内
3、核用老版本的超级块(superblock)覆盖修补过的超级块。[-w]并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。L-dJ不写wtmp纪录(已包含在选项卜n]中o[-f]没有调用shutdown1何强制关机或重启(halt/reboot)0[-h]使硬盘处于standby模式。卜i]关掉所有的网络接口。[-p]该选项为缺省选项。就是关机时调用poweroffo而面已经知道,poweroffreboot是halt的链接,halt会首先判断用八执彳亍的是否是poweroff和reboot中的一个。
4、如果执行的是poweroff,则等效于・p参数,执ft*reboot的情况将在下而说明。解析命令行参数后,会调用geteuid系统调用判断是否为root用户,如果为普通用户,halt退出。接下來即是针対不同的参数执行不同操作的过程。首先是不带任何参数的情况(或者参数中不含・w或-f),halt会通过INIT_VERSION和RUNLEVEL环境变量,或者读取/var/fun/utmp妬(通过linux的用户组函数)获得系统所在的运行级。如果系统不在0和6运行级,会判断执行的是否reboot,如果用户执行reboot,则调用"
5、shutdown-r";否则执彳亍"shutdown-h"。其它情况下,都是通过调用reboot系统调用来达到关机或重启的tJ的,有关reboot系统调用,可以使用man2reboot命令查看它的手册。如果开启了CTRL-ALT-DEL,同时按卞CTRL-ALT-DEL时,会调用reboot(RB_ENABLE_CAD)重启;如果用户执行的是poweroff命令,会调用reboot(RB_POWER_OFF)关机。按照默认设S,/etc/inittab文件指定你的系统町在控制台使用CTRL-ALT-DEL键组介來关闭并重启系
6、统。如果你想完全禁止这个功能,需要将/etc/inittab文件中下面一行注禅掉:ca:12345:ctrlaltdel:/sbin/shutdown-tl-a-rnow上面命令里的-a选项通知shutdown命令寻找/etc/shutdown.allow文件,并把CTRL-ALT-DEL的功能限定给某些川户。详见shutdown命令部分。3、运行级。所谓运行级别是一种系统软件环境配置,在此特定的环境屮只允许某一组选定的进程存在。init给不同的运行级别派生的进程在/etc/inittab文件中定义。Init可以启动到8个不
7、同的运行级别上:0-6和S或s。运行级别可以由超级用户通过telinit命令来转换,此命令可以将转换信号传递给init,告诉它切换到哪个运行级别。运行级别0,1,和6为系统保留的专用运行级别。运行级别0用来关机,运行级别6用来重启,运行级别1用来使计算机进入单用户模式。运行级別S不是给我们直接使用的,更多是为进入运行级别1时运行某些可执行脚本时被调用。运行级7-9虽然在文档屮说明,但也町以使用。不使用它们的原因只是因为”传统”Unix变种不使用这些运行级别。另外,运行级别S和运行级别s实际上是和同的,它们只是系统内同一运行级
8、别的两个不同的別名而己。可以使用sysvinit包的runlevel命令获得系统当前的运行级,不用加任何参数,直接在终端执行runlevel即可(也是通过用八组相关的函数读IR/var/run/utmp文件获得)。下面是几个运行级的简单介绍:#0■关机(千万不要把initdefault设置
此文档下载收益归作者所有