Как я могу выполнить и прервать скрипт в цикле

У меня есть скрипт под названием demo.py Сначала я demo.py скрипт

 python demo.py -some arguments 

Через некоторое время (скажем 120 секунд) я прерываю его с помощью Ctrl + C и выполняю снова. Могу ли я написать скрипт bash для выполнения этих шагов в цикле автоматически?

One Solution collect form web for “Как я могу выполнить и прервать скрипт в цикле”

 python demo.py -some arguments & ( sleep 120; kill -TSTP "$!") & fg %1 

Сначала запустим фоновый python , а затем запустите фоновой оболочку, которая sleep течение 120 секунд перед отправкой python -TSTP – или сигналом приостановки . Это не является строго идентичным нажатию CTRL+C – для этого вы хотите kill -INT "$!" – но я подумал, что вы можете снова восстановить его, поскольку это похоже на CTRL+Z

В последнем случае fg задает идентификатор задания %1 – который, если это только два процесса в таблице jobs , будет python .

И поэтому ваша demo запускается, в то время как ожидающий убийца скрывается в тени.

Здесь это ж / cat и 5 секунд ожидания:

 cat & ( sleep 5; kill -TSTP "$!" )& fg %1 cat [1] + Stopped cat 

Чтобы сделать это в цикле, вы можете сделать:

 (kill -TSTP 0); code=$? python demo.py -some arguments & pid=$! while (sleep 120;kill -TSTP "$pid")& fg %1; [ "$?" = "$code" ] do :; done 
  • Разбиение файла с использованием префикса
  • Почему sh отображает ошибку, если bash не работает?
  • Прочитайте n строк сразу в цикле, используя сценарий bash
  • #! / bin / bash exponent
  • Как перенаправить stdout и stderr в разные файлы
  • Я могу запустить код из терминала, но ту же команду, выдающую ошибку при запуске в сценарии оболочки
  • условные включения ifdef для оболочки
  • С помощью сценария оболочки с jstest, как я могу заставить геймпад взаимодействовать с моим скриптом?
  • Два условия в if (только положительные числа без букв)
  • Скрипт для входа на несколько серверов и выполнения команд и добавления вывода в один файл
  • Как протоколировать вызовы с использованием сценария оболочки, когда в исполняемый файл имеется несколько символических ссылок
  • Linux и Unix - лучшая ОС в мире.