首页 > 鸟哥书上20章习题2的疑问:/etc/rc[0-6].d

鸟哥书上20章习题2的疑问:/etc/rc[0-6].d

首先问题是

我有个朋友跟我说,他想让一个程序在Linux系统下一开机就启动,但是在关机前会自动先结束该程序,我该怎么建议他?

而这道题的答案是

由于/etc/rc.d/rc[0-6].d 里面有的Sxxname与Kxxname可以设定开机启动与关机结束的事项!所以我就可以轻易的写一个script放在/etc/rc.d/init.d里面,并连结到我的run-level 里头,就可以让他自由自在的启动与结束了

但是鸟哥之前讲了/etc/rc.d/rc[0-6].d这个目录中不管是S开头的还是K开头的文件都只与/etc/init.d这个目录,S开头的表示init时自动start某程序,K开头的表示init时自动stop某程序.

所以我的问题是,鸟哥的问题这与关机有任何关系吗?因为鸟哥的问题上故意指出了这句话...但是在关机前会自动先结束该程序...明显是关机过程本身就是把所有程序关掉吧

@huandu
鸟哥说的Sxxname和Kxxname是如下这样用的,

运行级别的切换
1、事实上不同的运行级别只是加载的服务不同,,这里以 run level 3 和 run level 5 为列:
只是他们的 /etc/rc.3d 和 /etc/rc.5d 内的Sxxname 和 Kxxname 不同而已
2、先对比 /etc/rc.3d 和 /etc/rc.5d 内k 和 s开头的档案
3、在新的 run level 内多的 K 都被关闭掉
4、在新的 run level 内多的S 都被开启,而都存在的就不用管了。
ok 这样运行级别就转化过来了!

以上关键是这一句话: 3、在新的 run level 内多的 K 都被关闭掉.我的理解是这表明Kxxname是init的过程,而非和关机有关,难道Kxxname也掌管关机过程?


关机前会自动先结束该程序

这里说的“结束”是指正常的关闭。

比如一个数据库服务脚本在 stop 的时候会给数据库服务发送一个消息,让数据库服务有机会把缓存中还没有写入磁盘的数据写完,确保没有数据丢失。如果不执行这种关闭脚本就关机,服务很可能没有机会写完缓存数据从而导致数据丢失。


现在好多发行版都使用systemd来管理服务啊

【热门文章】
【热门文章】