gpt4 book ai didi

unix - Unix kill 命令是否确保动态分配的内存将正确返回?

转载 作者:行者123 更新时间:2023-12-02 11:23:08 24 4
gpt4 key购买 nike

我在我新分配的项目中发现了一堆脚本,它们是“关闭”脚本。他们只是做一些基本的搜索并运行 Unix kill命令。他们有什么理由不应该以这种方式关闭进程?这是否确保动态分配的内存将正确返回?还有其他负面影响吗?我的直觉是,这是终止进程的最后手段。

最佳答案

kill命令向 Unix 进程发送信号。该信号默认为 SIGTERM,这是程序退出的礼貌请求。

当进程因任何原因退出时,Unix 操作系统 清理其内存分配、文件句柄和其他资源。唯一没有被清理的资源是那些应该被共享的资源,比如文件和共享内存的内容(比如 System V IPC)。

许多程序在退出时不需要做任何特殊的清理工作,而是使用默认的 SIGTERM 行为,即让操作系统停止进程。

如果程序确实需要特殊行为,它可以安装一个信号处理程序,然后它可以运行一个函数来处理信号。

现在是 SIGKILL 信号,它是数字 9,邪恶,但也是必要的。这个信号永远不会到达进程本身,操作系统简单地停止进程。这应该只在真正非常必要时使用。在陷入死锁的多线程程序或安装了 TERM 信号处理程序但在退出过程中搞砸的程序中,它通常变得必要。

关于unix - Unix kill 命令是否确保动态分配的内存将正确返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389927/

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