当我从父母那里调用kill(Child_PID, SIGSTOP);
时,我希望孩子停止执行并让父母继续。这是预期的行为还是我必须在子代中显式声明SIGSTOP处理程序?我到处搜索,但无法找到这些信息。
感谢。 布雷登
答案 0 :(得分:2)
答案 1 :(得分:2)
这是预期的行为。引自unix手册页:
无法捕获,阻止或忽略信号SIGKILL和SIGSTOP。
BSD手册页提到:
signal()函数将失败,不会执行任何操作 如果出现以下情况之一:
[EINVAL] The sig argument is not a valid signal number. [EINVAL] An attempt is made to ignore or supply a handler for SIGKILL or SIGSTOP.
结束语,您不允许为SIGSTOP安装处理程序。并且该流程将保持挂起状态,直到收到SIGCONT
。
答案 2 :(得分:1)
这是预期的行为。
使用strace your_program
查看正在发生的事情。