Это может быть проблема конкретного кластера, которую может решить только администратор, но когда у меня есть задание с низким приоритетом, а появляется задание с высоким приоритетом, процесс уничтожается.
Когда задание с высоким приоритетом завершается, задание с низким приоритетом перезапускается. Есть ли способ со стороны пользователя заставить его приостановить работу на машине, на которой он был первоначально запущен, через 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, чтобы избежать неприятных сюрпризов