Linux screen закрыть все сессии

screen выключение сессии.

Хочу сделать комбинацию клавиш для включения и выключения музыки. Делаю:

для этого мне надо знать pid процесса.
Через `ls /var/wun/screen/*/` могу получить список pid’ов всех процессов, запущенных через screen, а как получить pid имено моего mplayer’а?

> надо знать pid процесса.

killall mplayer?
А если я, например, паралельно киношку другим мплеером смотрю?

>а ещё mpd
mpd это конечно хорошо, но он работает на другом компе дома с которого вещается на icecast, что я как раз и хочу мплеером воспроизвести.
Или mpd умеет url воспроизводить? Если в m3u пихнуть?

Используй отдельный проигрыватель для музыки. Который демонизируется и управляется внешними командами. Как mpd или mocp.

Да, и как можно одновременно смотреть кино и слушать музыку я не понимаю, у меня мелькнула мысль о возможности такого но я честно говоря подумал что этим смело можно пренебречь.

А если управлять непосредственно mpd на той машине?

>Да, и как можно одновременно смотреть кино и слушать музыку я не понимаю

Например, запустил кино и решил выключить музыку.
И хотелось бы все же знать, как, если будет нужно запустить что-то в демоне через screen, как убить.

Блин, у тебя mpd крутится. К нему масса клиентов. Выключай прямо его.

Или его кто-то ещё другой слушает?

Управляю. Но комп в другой комнате. Не хочу музыку через комнаты слушать 🙂

Хотя. Короб в ту комнату пол года назад уже провел. 🙂 Думаю витой паре будет не тесно, если в нее еще положить провод от колонок.
Только вопрос: 30 метровый провод на звук не сильно повлияет?)

Может скрину можно какой сигнал посылать, если скринов много то выделить его названием. Собственно если скрин один то можно просто убивать скрин.

Ты поток по сети получаешь? Значит есть возможность и обратиться.

Хотя если кто то продолжает слушать, то только гасить свой mplayer.

еще rtorrent висит.
Как названием выделять?
Ман читал, но не нашел. (название ведь с помощью -t делается?)

Вроде да. Я со скринами акробатических трюков не делаю, поверхностное представление есть. Название дать ему можно, по названию обратиться тоже, сейчас посмотрел, вроде туда даже ctrl+c можно посылать внутрь. Просто завести отдельный скрин с специальным заголовком для mplayer и больше в него ничего не сажать.

Ну вот это мне и надо.
1. Как обратиться по названию (правильно ли я понимаю, что название — это -t?)
2. Как послать С-с? (Есть опция X, но я не понял, какую команду она хочет. )

-i will cause the interrupt key (usually C-c) to interrupt the display immediately when flow-control is on. See the «defflow» .screenrc command for details. The use of this option is discouraged.

По поводу названия — просто попробуй и проверь 🙂 Я такими вещами не заморачивался.

Хм. Если я правильно понял что требуется:

P.S. Вроде был более простой способ посылать текст в сессии screen’а так, будто это делает пользователь. Не с помощью register + paste. Но я его не могу вспомнить =(. Если кто знает — скажите.

1. Как обратиться по названию (правильно ли я понимаю, что название — это -t?)

Не -t, а -S. По названию подцепиться к сессии можно так:

Читайте также:  Программный диск для windows 10

Источник

IT заметки

Моя записная книжка

среда, 14 марта 2012 г.

Screen – управления окнами из консоли

Иногда приходится работать с *nix серверами удаленно по ssh, в моем случае через putty. Если дисканектит по причине херового интернета, ссесия рвется, то хана всем нашим не завершенным процессам, наработкам в не сохраненных конфигах и.т.д. Что бы предостереч себя от подобных казусов, а так же хранить сессии и в любое время из любого места к ним подключаться я открыл для себя оконный менеджер Screen. Теперь по делу.

#yum install -y screen

Для начала, освоим основные действия для манипуляции с окнами
Открываем любой эмулятор терминала (в моем случае — это putty) и запускаем в нем Screen:

Запустим в этом окне какой-либо процесс. Пусть это будет top и создаем еще одно окно
Ctrl+ac и запустим в нем какой-либо процесс. На этот раз путь это будет man screen

На данный момент мы имеем в одном окне терминала putty три запущенных окна screen.
Как глянуть сколько окон? как вариант Ctrl+aw

Мы видим в левом верхнем углу окна строку:
0$ bash 1*$ bash 2-$ bash

Это список активных, созданных нами окон screen. 0, 1, 2 — это номера окон, а bash — их имена (заголовки). Как видно, нумерация окон начинается с нуля. А вот имена у всех трех одинаковые — bash

Окна:
* 0$ bash — это то, которое Screen сам создал при своем запуске (забегая чуть вперед, можно сказать, что их колличество может быть не одно и выставляется оно в конфигурационном файле);
* 1-$ bash — в этом окне мы запутили top;
* 2*$ bash — в этом окне у нас запущен man screen.

Переключение производится сочетанием:
Cntrl+ap — переключиться на предыдущую вирутальную консоль
Cntrl+an или пробел — переключиться на следующую вирутальную консоль
Ctrl+a“ — интерактивный (в отличие от Ctrl+a – w) список созданных нами окон. Можно перемещаться по нему стрелками вверх-вниз и входить Enter‘ом в нужное.

Можно перейти на нужное окно, зная его номер, по команде:
Ctrl+aномер_окна

Например, перейдем на второе окно:
Ctrl+a1

Или, чуть переиначив команду:
Ctrl+a

В нижней строке появится предложение ввести номер окна, в которое мы хотим перейти. Допустим, нам нужно перейти в первое окно — вводим номер 0 и нажимаем Enter:

Как мы видели из вывода команд Ctrl+a – w и Ctrl+a – “, имена (заголовки) окон одинаковые. Давайте исправим это. Наберем команду Ctrl+aA

В нижней строке появится приглашение изменить заголовок окна. Исправляем с bash на main и нажимаем Enter. Узнать имя текущего окна можно Ctrl+aN мы увидим в левом верхнем углу окна его имя.

Информацию об окне:
Ctrl+ai

Мы увидим в левом верхнем углу окнаинформацию и его имя, в нашем случае имя Main.

Как видно из предыдущих выводов, нумерация окон происходит последовательно, с возрастанием номера: 0 — 1 — 2. Если мы закроем одно из них, нумерация оставшихся окон не изменится.

Закрытие окна в Screen производится выполнением команды exit в окне. Предварительно, нужно остановить все запущенные процессы в нем. Закрытие окон можно произвести и комбинацией Ctrl+a – k. Однако, выполнять ее не рекомендуется, так как эта операция идентична команде kill – “убить” процесс.

Давайте закроем второе окно. Остановим процесс top и выполним exit. А затем посмотрим вывод команды.

Читайте также:  Microsoft skype процесс windows

Видим, что нумерация теперь следующая: 0 — 2. Давайте поменяем нумерацию окон, в частности, окна под номером 2 и присвоим ему номер 1. Выполним команду:
Ctrl+a:
Внизу окна появится приглашение в виде двоеточия для ввода команды.
Введем команду:
number 1
И нажимаем Enter.
Смотрим результат:
Ctrl+a

Cправка по клавиатурным комбинациям Screen:
Ctrl+a?

По умолчанию, Screen отображает только одно окно на экране эмулятора терминала. Однако, имеется возможность разбивать окно Screen в терминале на несколько. Для этого существует команда разбивки окна на горизонтальные части – регионы. Удобство в этом случае заключается в том, что нет надобности переключаться между окнами – все они находятся на виду и все процессы под контролем, достаточно лишь перевести взгляд на нужное окно.
Открываем эмулятор терминала и запускаем в нем Screen и выполняем команду разбивки экрана эмулятора на две горизонтальные части – регионы:
Ctrl+aS

Как видно на скриншоте, окно эмулятора терминала putty было разбито на две одинаковые горизонтальные части. В Screen такие части, выполненные с помощью команды Ctrl+a – S, называются регионами. Таких регионов может быть не обязательно два, а много больше. Допустим, чтобы получить три окна Screen в нашем случае, нужно в текущем регионе (он у нас верхний) снова выполнить команду Ctrl+a – S. Так можно создать три, четыре, пять и т. д. окон Screen. Но мы остановимся на варианте из двух окон, для наглядности.

В верхнем регионе у нас запущен Screen и на этом регионе установлен фокус (зеленый курсор). Нижний регион у нас пуст – в нем не запущен Screen и пока там ничего нет. Нам необходимо перейти на нижний регион, создать там окно Screen и запустить в нем процесс.
Переведем фокус на нижний регион:
Ctrl+aTab
и создадим в нем окно Screen:
Ctrl+ac

У нас появилась командная строка.
Запустим в здесь процесс – top


Теперь переместимся (переведем фокус) опять на верхний регион и запустим там ps -aux.
Снова вводим команду:

Ctrl+aTab
и выполняем:
ps -aux

Закрытие текущего региона в Screen производится командой Ctrl+a – X. Выполним ее в нашем текущем верхнем регионе:
Ctrl+aX

Если открыто несколько (больше двух) регионов, можно закрыть сразу все, кроме одного – текущего, выполнив команду:
Ctrl+aQ

и вот еще:
Ctrl+a| (вертикальное разбиение)

Ctrl+Ad — deattach — отключитсья от окна (но не закрыть)
Ctrl+AH — записывать в журнал
Ctrl+AC — (clear) очистить экран.

Источник

Linux screen закрыть все сессии

Screen — это полноэкранная программа, работающая в текстовом режиме, которая позволяет в одной консоли (или ssh-сессии) иметь несколько виртуальных экранов с независимо выполняющимися в них программами. Т.е. программа screen позволяет открыть несколько терминальных сеансов в одном окне терминала. Программа screen может быть очень полезной в том случае, если, например, вы работаете с несколькими программам в интерфейсе командной строки и вам необходимо чтобы они выполнялись одновременно, в независимых сессиях и требуется возможность переключения между ними. Также, программа screen дает возможность передать одну сессию другому пользователю.

Во многих дистрибутивах команда screen установлена по-умолчанию, однако, если в вашей системе это не так, вы можете установить её вручную достаточно просто (т.к. она есть в стандартных репозиториях большинства дистрибутивов).

Для rpm-based дистрибутивов (RedHat, CentOS, Fedora, итп) выполните:

Для deb-based дистрибутивов (Debian, Ubuntu, итп) выполните:

# apt-get install screen (On Debian based Systems)

Запуск screen в первый раз

Для запуска команды screen просто выполните:

Читайте также:  Как сделать dvd загрузочный диск windows

Вывод информации о клавиатурных сокращениях

После запуска команды screen вы можете работать совершенно обычным образом в интерфейсе командной строки. Но, поскольку команда screen сама является программой, у неё есть свои команды и параметры.

Нажмите «Ctrl+A» и, затем, «?» (без кавычек). На экран будут выведены клавиатурные сокращения:

Для выхода нажмите «пробел» или «Enter»

Отключение экрана screen

Важнейшим преимуществом команды screen является функция отсоединения экрана с последующей возможностью подключения (при этом выполнение программ не прерывается).

Например, это может понадобится в том случае, если вы работаете по ssh на удаленной машине, и вам необходимо скачать объемный файл с помощью команды wget, на что потребуется, например, 2 часа. В том случае, если вы закроете ssh-сессию по собственному желанию или случайно по причине разрыва соединения процесс загрузки также прервется. Соответственно, вам придется вручную запускать загрузку заново. Избежать такой проблемы как раз поможет команда screen.

В первую очередь, запустите команду screen:

Затем запустите команду, которая занимает длительное время. Например, это может быть обновление системы или, как сказано выше, процесс загрузки большого файла:

Во время процесса загрузки нажмите комбинацию клавиш «Ctrl+A» и затем «d» (также можно «Ctrl+D»). При нажатии этих клавиш на экран ничего выведено не будет, только после того, как будет выполнено отключение экрана вы увидите подобное:

[detached from 7724.pts-0.howtoitru]
[istupak@howtoitru

Подключение отключенного экрана screen.

После того, как вы отключили экран screen вы закрыть сессию ssh. Подключившись позднее, например, удаленно из другого места вы можете подключить экран опять и проверить, была ли завершена загрузка. Для этого выполните команду:

Вы увидите, что процесс, который вы запустили все еще работает.

В том случае, если вы запустили и оставили отключенными более чем одну сессию screen вам будет необходимо указать ID этой сессии. Для того, чтобы посмотреть, сколько сессий было запущено выполните:

Вывод будет примерно таким:

There are screens on:
7938.pts-0.howtoitru (Detached)
7724.pts-0.howtoitru (Detached)
2 Sockets in /var/run/screen/S-howtoitru

Если вы хотите восстановить сессию 7724.pts-0.howtoitru выполните:

Использование нескольких сессий screen

Как уже стало понятно, вы можете работать с несколькими сессиями screen для выполнения множества задач одновременно. Переключение между экранами можно выполнить двумя способами:

  • отключение экрана и подключение к другому (как описано выше)
  • переключение между «вложенными» экранами, не завершая команду screen

Для второго способа необходимо запустить команду screen и нажать «Ctrl-A» и «c» для создания следующего вложенного экрана. Переключение между экранами производится командами «Ctrl-A» и «n»(следующий экран) и «Ctrl-A» и «p»(предыдущий экран).

Запись (логирование) выполняемых команд.

Иногда желательно производить запись того, что выполняется в консоли, например, если вы системный администратор, управляющий множеством различных серверов.

Для запуска функции логирования нажмите «Ctrl-A» и «H» (обратите внимание на регистр символа «H», т.к. если вы выполните команду «h» будет создан скриншот экрана вместо записи действий). Все ваши действия и выводы на экран будут записаны в файл screenlog.0 в вашей домашней директории.

Для прекращения записи опять выполните «Ctrl-A» и «H».

Также можно активировать запись запусти команду с параметром -L:

Блокировка экрана

Существует возможность блокировки экрана с помощью сочетания клавиш «Ctrl-A» и «x». При блокировке на экран будет выведено:

Screen used by howtoitru onhowtoitru.
Password:

Завершение сессии screen

Для завершения сессии (полного, а не отключения, выполняемого командой «Ctrl+A» и «d») выполните обычную команду выхода:

Также можно использовать сочетание клавиш «Ctrl+A» и «k» для завершения сесии.

Источник

Оцените статью