【问题标题】:Allow a process to stop another process for a given time c允许一个进程在给定时间内停止另一个进程 c
【发布时间】:2021-02-17 13:08:26
【问题描述】:

我想知道是否有办法让父进程使用signal在给定时间内停止他的孩子
例如:

pid_t pid = fork();

if(pid==0){
  while(1){

//some code here

  }
}else{

// some code to make child process stop for x seconds

}

【问题讨论】:

  • 你可能总是武装一个调用alarm(N)函数的SIGUSR1处理程序来安排一个SIGALRM信号在N秒内传递给调用进程,然后如果你想停止一个调用pause处理以秒为单位的时间......但请注意,当信号由发送方进程提出时,接收方不会立即处理它们,而是按照操作系统执行某些活动的时间进行处理并且可能会引入额外的延迟(与秒相比无论如何都很小)。

标签: c linux signals


【解决方案1】:

您可以使用 SIGSTOP 和 SIGCONT 来停止和继续该过程。结合一些延时功能(例如 sleep() )你可能会得到想要的效果。

您可以在这里查看示例:https://ostechnix.com/suspend-process-resume-later-linux/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2010-11-14
    • 2020-03-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多