0

这可能是集群特定的问题,只能由管理员解决,但是当我有一个低优先级的作业并且出现一个高优先级的作业时,该进程被终止。

当高优先级作业完成时,低优先级作业将重新启动。用户端有没有办法让它在最初通过 SIGSTOP 启动的机器上挂起而不杀死进程?不幸的是,检查点在这里不是一个选项,所以我希望能够在不丢弃内存的情况下完成这项工作。

我们确实有这台机器的 ssh,所以如果一切都失败了,我很想做一个非常草率的脚本黑客来获得所需的行为:

1. start the process locally
2. send a SIGSTOP
3. make the job script send SIGCONT and just spin watching the process
4. when the job gets suspended, send a SIGSTOP again
5. when the job gets resumed, it should just send a SIGCONT

但我更愿意在 SGE 内做所有事情以避免任何令人讨厌的意外

4

1 回答 1

1

SGE 中的挂起/停止机制由属性 和 以每个队列为基础suspend_method进行resume_method控制terminate_method。默认值为:

  • suspend_method- 发送 SIGSTOP
  • resume_method- 发送 SIGCONT
  • terminate_method- 发送 SIGKILL

除了弄乱默认值之外,我看不出 SGE 没有其他理由杀死作业而不是停止它们。

于 2012-05-04T21:34:36.487 回答