Как узнать, когда закончится работа на экране?

Можно ли узнать, завершен ли сценарий, выполненный внутри сеанса экрана, или нет? Сценарий можно увидеть, набрав jobs и я хотел бы завершить screen session когда скрипт закончен. Как я могу это сделать или могу ли я закончить сам экран после успешного выполнения скрипта? Это не удобно делать вручную, так как я запускаю 72 сеанса экрана одновременно. Было бы очень приятно как-то проверить статус заданий внутри сеансов экрана автоматически и распечатать их на stdout и завершить сеансы screen когда выполняемые работы будут завершены.

2 Solutions collect form web for “Как узнать, когда закончится работа на экране?”

Вы просто your_script команды 1. your_script и 2. kill this screen session

Пусть foo.sh будет вашим скриптом. Команда убить сеанс экрана kill . Вы выдаете команды на сеанс экрана с screen -X , заставляя screen -X kill команду shell / bash, чтобы убить сеанс экрана, в котором вы сейчас находитесь.

 screen -S the_session_for_my_job 

для создания сеанса экрана, а затем вы

 /path/to/foo.sh; screen -X kill 

Это убьет сеанс экрана, независимо от количества окон, и сделает это после завершения foo.sh.

Более сложным способом является просмотр идентификаторов процессов и выдача команды kill при исчезновении определенного ПИД-кода.

Пусть 12345 PID процесса, который вы хотите посмотреть. Тогда вы

 while ps a | grep ^12345;do sleep 2; done; screen -X kill 

Цикл while наблюдает за списком процессов для процесса с PID 12345. Если такой процесс существует, он будет спать 2 секунды перед повторной проверкой. Если процесс с этим PID не существует, цикл while завершается. Затем выдается команда kill.

Я использую электронную почту со следующим:

 command | mail-s job_output to@email.com; exit 

Или, если он уже запущен, вы можете ввести (или скопировать-вставить, если есть много выходных) команд для выполнения после завершения:

 echo $STY done | mail -s job_done to@email.com; exit 
  • Преобразование команды экрана для tmux
  • Символы UTF-8 в строке состояния экрана Byobu
  • Несколько файлов журнала с экраном
  • Возвратная перевозка не работает (Экран)
  • Запуск фонового процесса с помощью команды screen в xshell
  • Существует ли эквивалент команды «log» GNU Screen в tmux?
  • Открытие нескольких разделенных окон с помощью экрана GNU с одним сценарием bash
  • Экран Gnu: переназначить «ca ca», чтобы отправить «ca»
  • Как я могу остановить последовательности смены заголовка от клонирования моих титулов экрана GNU?
  • Запуск `screen` через задание @reboot cron
  • Экран GNU: у вас нет ни используемых сокетов, ни используемых труб
  • Interesting Posts

    Существуют ли ограничения размера при увеличении файловой системы EXT3?

    Использование Guake в виртуальной машине Linux на хосте Windows

    Нужно ли устанавливать LIRC отдельно в Fedora 18?

    gnuplot – «подталкивать» отложенные точки от края диаграммы

    Компиляция Riofs не может скомпилироваться с поддержкой -force-head-запросов

    У меня есть многострочная строка, которую мне нужно перебрать, но я не использую bash. Совет?

    Как периодически очищать файлы журналов?

    Как заменить строку в файле другим файлом?

    Нужен абсолютный путь для каждой строки из текстового файла с использованием сценария оболочки

    Не удалось выполнить перенаправление в среде chroot

    Использование нескольких уровней модулей ядра для сопряжения аппаратного устройства?

    Команда для отображения каталогов, в которых нужно искать общие библиотеки?

    Вопрос о выпуске HQ QLogic

    Проблема с графическим подключением gdm (OpenSUSE 11.2)

    Дополнительный вывод при запуске команд из zsh в Guake

    Linux и Unix - лучшая ОС в мире.