
Я написал zsh
скрипт, который запускает много сеансов экрана и запускает в каждом из них отдельную команду. Когда скрипт выполняется, всего 72 экрана, поэтому проверка job
вручную, завершен ли a, занимает очень много времени. Могу ли я запустить какой-то отдельный скрипт, который будет проверять, есть ли в сеансах экрана запущенные задания или нет, и завершать сеанс, если запущенных заданий нет? Есть какие-нибудь идеи? Я не смог придумать никакого метода, чтобы надежно проверить, что произошло во всех сеансах экрана, заранее спасибо.
решение1
Я мог бы себе представить, чтовыходной протоколФункция экрана может помочь Вам в этом (см.страница руководства(для получения подробной информации). Вы можете создавать выходные журналы Ваших сеансов и проверять их, чтобы видеть, завершены ли Ваши задания.
Или вы можете проверить дерево запущенных процессов (например, с помощью pstree
), чтобы увидеть, есть ли у оболочек в сеансах экрана запущенные дочерние процессы или нет. Однако я могу себе представить, что разбор вывода pstree
в скрипте громоздкий и подверженный ошибкам, поэтому вы можете на самом деле захотеть использовать интерфейсы ядра (чтобы получить дерево запущенных процессов) для этого.