gpt4 book ai didi

linux - 我可以在生成核心转储时启动该进程吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:05 25 4
gpt4 key购买 nike

我有一个监视脚本将检查指定的进程,如果它崩溃,该脚本将重新启动它,而无需等待核心转储写入完成。这会招致不好的事情吗?是否会影响核心转储文件或重新启动的进程?

最佳答案

是的,可以。进程与程序不同。由于您可以在 unix 中并行运行 ls 命令的多个实例,因此在保存核心文件时,没有什么可以阻止您再次重新启动同一程序(而是不同的新进程)。与正常进程写入文件的唯一区别是写入核心的进程只是在内核模式下执行。没有别的了。

核心转储是由在内核模式下执行的被杀死的进程执行的,作为死亡任务的前一个。就进程状态而言,进程处于退出状态,并且在核心转储完成之前没有任何内容可以影响它(只能由转储文件中的写入错误中断,或者可能这是可中断状态)

你可能遇到的唯一问题是,你启动的下一个实例,当它尝试写入相同的核心文件名时,将不得不等待它结束(我认为 inode 仅在每次写入的基础上锁定,而不是整个文件),并且你会得到一堆进程死亡并写入相同的核心文件。如果核心发生在一个新的、不同的文件上(该文件在创建之前已取消链接),则情况并非如此,但这取决于实现。漏洞利用可能是 DOS 攻击,开始高速生成核心,写入核心文件以使大量进程处于非中断状态。但我认为这很难实现......很可能只有你会因为许多进程编写不同的核心文件而获得高负载,这些进程只是为了接下来被删除(由于下一个核心生成任务进行的取消链接系统调用)。

关于linux - 我可以在生成核心转储时启动该进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49583797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com