【问题标题】:cascading failures in exec system callexec系统调用中的级联失败
【发布时间】:2013-10-02 18:33:33
【问题描述】:

我最近了解了 unix 中的 exec() 系统调用。考虑一个执行 exec() 的进程,“转换后的进程”再次执行 exec() 等等。突然当前正在执行的事情失败了,所以必须恢复前一个 proc 的上下文。

我的问题是,如果故障继续以级联方式发生,那么“原始”上下文是否仍然可用。换句话说,unix 可以花费多少内存来继续和保存上下文。

【问题讨论】:

    标签: unix operating-system exec system-calls


    【解决方案1】:

    exec() 系列正在替换 系统调用——它们完全用新进程替换了原始进程,因此没有回头路。要保留原始上下文,请使用 system() 调用(它是 fork() 和 exec() 的包装)

    【讨论】:

    • 有人告诉我,如果替换的上下文失败,则会恢复以前的上下文。这不是真的吗?
    • 没有“恢复”——它只是停留。您继续使用 exec 返回的否定 rcode。
    猜你喜欢
    • 2017-08-24
    • 2018-01-29
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多