Проверьте мои задания очереди и перезапустите вычисления, которые не заканчиваются правильно - PullRequest
0 голосов
/ 29 сентября 2018

Я отправляю некоторые расчеты с некоторыми научными программами на внешнем компьютере с системой очередей заданий.Во многих случаях программа аварийно завершает работу или не завершается прямо во время собственного вычисления суперкомпьютера.Итак, я хочу создать bash-скрипт, который проверяет, запущена ли моя программа или нет, и когда программа заканчивается, она проверяет выходной файл, чтобы увидеть, правильно ли он заканчивается.Для выполнения этой последней части выходной файл при правильном завершении имеет характерную строку, например «Ваша программа завершается правильно».Таким образом, это может быть использовано для проверки этого последнего пункта.Я думал использовать список очередей работы, чтобы проверить, выполняются ли мои работы или нет, но я не знаю, как периодически проверять, пока это не закончится.Заранее спасибо.

1 Ответ

0 голосов
/ 29 сентября 2018

Это классический случай для цикла while some_command.Например, если ваша программа является последней из заданных текущего скрипта, PID будет доступен в $!, и вы можете сделать это:

while kill -0 $!
do
    sleep 1m # Or some other amount of time
done

Чтобы проверить, содержит ли последняя строка файла«Ваша программа закончилась правильно»:

tail -n1 output.log | grep 'Your program ended correctly'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...