解析inittab中shutdown命令的参数及相关疑问
关于
/etc/inittab中shutdown相关参数的疑问解答 嘿,这个问题其实是个很容易踩的误区——很多人会误以为inittab里写的参数都是直接传给后面的shutdown命令的,但事实并非如此!咱们一个个拆解你的问题:
1. -a、-t1、-t4这些参数到底是什么意思?
首先明确核心点:这些不是shutdown命令本身的参数,是init进程处理inittab里shutdown类型条目时自己识别的选项!
-a参数:这是用来限制关机权限的。当你加了这个参数,init会去检查/etc/shutdown.allow文件——只有这个文件里列出的用户,才有资格触发这个关机流程,其他普通用户根本没法触发这个inittab条目对应的关机操作。-t N参数:这里的N是秒数,作用是给系统进程留足优雅退出的时间。比如-t1就是等1秒,-t4就是等4秒。在发送终止信号给所有进程后,init会等待N秒,如果还有进程没退出,就会直接发SIGKILL强制杀掉它们,确保系统能顺利关机。
2. 没指定运行级别的inittab条目,会适用于0-6所有级别吗?
答案是不会。inittab的标准格式是id:runlevels:action:process,如果runlevels字段是空的,这个条目的生效范围要看action字段是什么。对于shutdown类型的条目(也就是action设为shutdown),即使没写运行级别,它也只会在系统进入**关机(级别0)或重启(级别6)**这两个特定运行级别时触发,不会在1-5这些正常运行的级别里执行——毕竟shutdown动作本来就只和关机/重启流程绑定嘛。
3. 为啥这些参数在shutdown手册里找不到?
再敲一次黑板:这些参数是给init用的,不是给shutdown命令的!你应该去查man inittab或者man init,而不是man shutdown。
举个直观的例子,假设你的inittab里有这么一行:
ca::shutdown:/sbin/shutdown -h now
如果改成:
ca::shutdown:/sbin/shutdown -t4 -a -h now
这里的-t4和-a是init要解析的配置项,真正传给/sbin/shutdown命令的只有-h now这部分!这就是为什么你查shutdown手册根本找不到这些参数的原因。
内容的提问来源于stack exchange,提问作者kojow7
相关产品推荐
相关产品推荐

