开发者社区> 问答> 正文

/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也掌管关机过程?

展开
收起
a123456678 2016-06-21 13:58:47 2897 0
1 条回答
写回答
取消 提交回答
  • 关机前会自动先结束该程序
    这里说的“结束”是指正常的关闭。

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

    2019-07-17 19:44:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载