Я запускаю сеансы экрана в Unix. После открытия и запуска нескольких сеансов экрана я хотел бы проверить ход каждого сеанса экрана, чтобы узнать, завершен ли какой-либо сеанс.Как проверить ход сеанса экрана без повторного подключения к сеансу?
В командной строке, если я типа:
$screen -ls
я мог видеть список отдельных экранных сессий, например,
There are screens on:
4683.pts-0.xxxx (Detached)
4869.pts-0.xxxx (Detached)
4848.pts-0.xxxx (Detached)
4890.pts-0.xxxx (Detached)
4 Sockets in /var/run/screen/S-xyzxyz.
Если я хочу, чтобы проверить, если любой из 4-х сеансов завершения работы, я мог бы прикрепить одну сессию, чтобы проверить прогресс:
$screen -r 4683.pts-0.xxxx
Тогда я мог бы видеть, если эта сессия завершит работу.
Однако есть ли способ проверить ход всех сеансов экрана без повторного подключения к каждой сессии?
Как вы определяете "заканчивается бег"? Я предполагаю, что вы запускаете скрипт в каждом сеансе экрана. У вас может быть сценарий (или сценарий, который запускается после него), выход из экрана или запись в файл журнала? Или вы можете проверить PID скрипта, который вы используете в сеансе экрана. – Matthew
Не могли бы вы начать каждый сеанс экрана с помощью аргумента '-L' и grep через журналы для слова или фразы? [https://www.gnu.org/software/screen/manual/screen.html](https://www.gnu.org/software/screen/manual/screen.html) – runningviolent