Файлы журнала не генерируются из sbatch через Popen - PullRequest
0 голосов
/ 07 декабря 2018

Python 3.6

Итак, у меня есть функция, которая просто отправляет задание в SLURM.В настоящее время меня не волнует вывод «Задание отправлено, идентификатор работы».Проблема заключается в том, что флаги --output и --error не генерируют выходные файлы в каталогах, которые я отметил.

def submitJob(self):
    # self.DEV_DIR and self.IDENT_DIR are absolute paths.
    cmds = [
        "sbatch",
        "-A",
        "devtest",
        "-p",
        "general",
        "--qos=normal",
        "-J",
        '"Parentage - %s - %s"' % (self.farmID, self.ident),
        "--nice=0",
        "-c",
        "1",
        "--mem=10240", # MB
        "--time=00:10:00",
        "--output",
        "%s/p_done.log" % (self.IDENT_DIR),
        "--error",
        "%s/p_error.log" % (self.IDENT_DIR),
        "PARENT/run_job.sh %s %s" % (self.farmID, self.ident)
    ]
    cmd = " ".join(cmds)
    p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
              shell=True, cwd=self.DEV_DIR+"/PROG", universal_newlines=True)
    output, err = p.communicate()
    return (output, err)

Для ясности, задание отправляется.Если я обычно вызываю sbatch через командную строку, файлы журнала создаются.

Я думаю, что после отправки задания канал stdout полностью закрывается, а файлы журнала не создаются.Мне нужны эти файлы журналов для генерации, следовательно, проблема.Альтернативой является запуск run_job.sh для создания простого «готового» файла в каталоге впоследствии (скрипт следит за созданием этих файлов), но это не сработает, если задание истекло.

Каталогисуществует, когда эта команда запущена.

Я упускаю что-то очевидное, что мешает мне получать выходные файлы из sbatch в этом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...