Запустите фоновое screen
имя сеанса "mysession":
screen -d -m -S mysession
Запустите top
в первом окне
screen -S mysession -X exec top
Запустите другое окно, назовите его "win1" и запустите в нем « vmstat 10
».
screen -S mysession -X screen -t win1
screen -S mysession -p win1 -X exec vmstat 10
Запустите другое окно, назовите его "win2" и запустите в нем « iostat 30
».
screen -S mysession -X screen -t win2
screen -S mysession -p win2 -X exec iostat 30
Для подключения и просмотра сеанса:
screen -x -S mysession
Если какая-либо из программ завершится, окно не закроется, так как на screen
будет запущена оболочка в каждой (которую вы можете использовать при необходимости).
- ИЛИ - если вам нужна только одна команда для каждого окна или вы хотите более легко выполнять очистку после завершения процессов, не запускайте оболочку по умолчанию в каждом окне, только команду (ы):
screen -d -m -S mysession top
screen -S mysession -p 0 -X title win0 # optional!
screen -S mysession -X screen -t win1 vmstat 10
screen -S mysession -X screen -t win2 iostat 30
screen
"завершит" окно (возможно, оставив содержимое окна нетронутым, см. zombie
ниже), когда процесс завершится, или отключит их:
screen -S mysession -X quit # nuke whole the session
или же
screen -S mysession -p win2 -X kill
screen -S mysession -p win1 -X kill
screen -S mysession -p 0 -X kill
(это может или не может убить любые запущенные процессы, хотя screen
будет отправлять каждый SIGHUP)
Если вы хотите, чтобы screen
автоматически закрывал окна и выходил после завершения всех процессов, добавьте его после создания сеанса (хотя, если в вашем zombie
не установлено .screenrc
, это, вероятно, по умолчанию в любом случае):
screen -S mysession -X zombie
Это отменяет "зомби" ключи закрытия и воскрешения, затем окна исчезают, когда команда в каждом окне завершается, сам screen
закрывается, когда закрывается последнее окно. (Возможно, вам придется использовать defzombie
вместо zombie
, но у меня работает только последняя, несмотря на документацию об обратном.)