首先问题是
我有个朋友跟我说,他想让一个程序在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 的时候会给数据库服务发送一个消息,让数据库服务有机会把缓存中还没有写入磁盘的数据写完,确保没有数据丢失。如果不执行这种关闭脚本就关机,服务很可能没有机会写完缓存数据从而导致数据丢失。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。