【问题标题】:Does any function from the exec family in unix not ignore SIGINT?unix 中 exec 系列的任何函数都不会忽略 SIGINT 吗?
【发布时间】:2009-02-24 13:01:02
【问题描述】:

是否可以使用exec 启动一个进程并让该进程在后台运行,并且(与System() 不同),一旦中断信号传递给父进程,该进程是否会被killed创建它?

【问题讨论】:

    标签: exec signals


    【解决方案1】:

    是的。忽略 SIGINT 是 system() 特有的行为。如果你使用 fork() 和 execl() 滚​​动你自己的 system(),你将不会得到。

    当然,除非你真的很小心,否则你会制造僵尸。

    【讨论】:

    • 不确定僵尸评论 - 如果父级忽略 SIGCHLD 信号,则不会创建僵尸。此外,该进程可以等待其子(或多个)死亡,就像 system() 一样 - 或者它可以与同时运行的子异步运行。
    • 这些选项几乎就是我所说的“非常小心”的意思。 :)
    猜你喜欢
    • 2016-07-12
    • 2020-06-22
    • 2016-05-19
    • 1970-01-01
    • 2012-10-08
    • 2021-10-17
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多