加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – /etc/rcX.d/中没有“K”链接的守护进程会发生什么

发布时间:2020-12-13 16:49:02 所属栏目:Linux 来源:网络整理
导读:如果该脚本在(例如)/etc/rc0.d/中没有相应的K条目,那么init通过init脚本启动的进程会发生什么? 例如,以下脚本启动了一个守护进程: -rwxrwxr-x. 1 root root 3.3K Jul 16 11:48 /etc/rc3.d/S99foobar 没有相应的链接(例如/etc/rc0.d/K99foobar)来处理在关机
如果该脚本在(例如)/etc/rc0.d/中没有相应的K条目,那么init通过init脚本启动的进程会发生什么?

例如,以下脚本启动了一个守护进程:

-rwxrwxr-x. 1 root root 3.3K Jul 16 11:48 /etc/rc3.d/S99foobar

没有相应的链接(例如/etc/rc0.d/K99foobar)来处理在关机/重启时终止这些进程.

这些进程只是在最后运行时从init接收SIGTERM,然后是SIGKILL吗?或者是init足够智能调用/etc/init.d/foobar停止?

解决方法

如果你仔细观察你的关机过程,你会发现,在几乎所有的事情完成之后,init会杀死任何仍在运行的东西.

在Red Hat / CentOS 6系统上,您将看到:

Sending all processes the TERM signal...

几秒钟之后

Sending all processes the KILL signal...

任何当时没有被关闭的东西都将被杀死.这是在/etc/rc.d/init.d/halt脚本中,这是在系统关闭时运行的最终脚本.

运行后,停止开始卸载文件系统并进行其他预关闭最终清理,然后最终实际停止或重新启动系统.

使用upstart或SysVinit的所有其他发行版都做类似的事情.

请注意,systemd不会出现此问题,因为它始终知道它已启动的服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读