Запуск программ в оболочке Screen

Статус
В этой теме нельзя размещать новые ответы.

Juzilkree

Злостный отаку
Команда форума
Администратор
29 Ноя 2012
1.940
731
158
37
www.dyndev.ru
И так. Этот так сказать гайд посвящается всем тем кто до сих пор запускает сервер через MC(Midnight Commander), после чего дожидается прогрузки сервера и после чего закрывает консоль.

Знаю что похожая тема уже была.
»Краткое руководство по работе в screen (screen console)
Будем считать это продолжением.

Примеры буду показывать с запуском сервера PW.

Начнём с установки этого самого screen'a
Код:
apt-get install -y screen
Дожидаемся окончания установки... Дождались? Отлично, идём дальше.

Для того что бы открыть сессию в screen вводим следующее
Код:
screen
Жмём энтер "ENTER" и видим следующее
2013-04-14-16-42-49.jpg
Теперь жмём пробел. "SPACE".
Поздравляю, вы в screen'e!

Далее действуют все те же команды что и в обычном терминале(консоли).
Запустим сервер.
Для этого перейдём в директорию с вашими скриптами запуска. Наш сервер находится в директории /home.
Код:
cd /home
Перешли... Теперь запустим сервер.
Код:
./start.sh
Сервер запускается... Теперь мы может как-бы свернуть окно screen'a и заняться другими делами.
Для того что бы сделать это, нужно нажать по порядку и не отпускать кнопки
Код:
CTRL A D
После вы увидите следующее
2013-04-14-17-13-44.jpg
Это название screen'a
Код:
6762.pts-2.pw
У вас оно может отличаться от моего.
Вообщем мы свернули окно с запуском сервера но сам сервер продолжает загружаться.

Для того что бы вернутся в окно с сервером, вводим следующее
Код:
screen -r 6762
Жмём ентер "ENTER".
Вуаля! Мы сного попали в то самое окно в котором идёт загрузка сервера или может уже всё прогрузилось.

Ещё 1 способ запуска сервера в оболочке screen
Создадим .sh файл и назовём его например pwscreen.sh
Откроем его блокнотом (Notepad++) и пропишем следующее
Bash:
#!/bin/sh
screen -d -m -A -S pwserver
cd /home/
./start.sh

2 строка : запустит screen,
-d -m = запуск сессии в detatch режиме.
-A = подгоняет размер окна под размер текущего терминала.
-S pwserver = устанавливает имя для данной сессии.

3 строка : переходим в директорию с сервером и скриптами запуска.
4 строка : запускаем сервер.

Далее заливаем созданный файлик (pwscreen.sh) в директорию /home/.
И теперь для запуска сервера в screen'e нам нужно просто
Открыть терминал.
перейти в директорию /home/
Код:
cd /home
и запустить созданный нами файл
Код:
./pwscreen.sh

Для того что бы посмотреть как себя чувствует наш сервер вводим следующее
Код:
screen -r pwserver

На этом всё.
Надеюсь я что нибудь забыл :whistle:


update 4akN

screen -ls покажет список запущенных сессий скрина пользователя
Если сессия всего одна подключиться к ней можно без указания имени, просто screen -r
Чтобы отключить клиента от сессии screen -D [имя_сессии]
CTRL+A C
- создать новую вкладку в текущей сессии
CTRL+A P - переключиться на предыдущую вкладку
CTRL+A N - переключиться на следующую вкладку
CTRL+A K - убить текущую вкладку
 
Последнее редактирование:

vovansuz

Пользователь
Пользователь
22 Апр 2012
37
27
18
27
Добавлю не много от себя.
Команды:

screen – запустить с параметрами по умолчанию;
screen -S — запустить с определенным именем «name»;
screen -U — запуск в режиме UTF-8;
screen -ls — посмотреть существующие скрины с названиями и состоянием (выводиться в виде: pid.tty.host, «attached»- работают, «detached»- нет, «dead»- мертвые);
screen -wipe — удалить «мертвый» сеанс;
screen -r — подключиться к скрину;
screen -r name — подключиться к определенному скрину с именем «name» (можно указывать несколько начальных букв);
screen -R [name] — присоедениться, а если он не существует, то создать;
screen -x [name] — подключиться к определенному активному скрину с именем «name», т.е. к которому на данный момент уже присоединены с другой сессии.

Чтобы не возиться с вышеописанными командами можна использовать следующую команду для удаленного доступа по SSH:
ssh -t login@host screen -Rd — после входа на сервер сразу попадаем в запущенный скрин, а если такового нет, то он создастся. Если в это время к существующему уже с другого места присоединены, то там просто произойдет отключение.
ssh -t login@host screen -RD — отличие в том, что в другой сессии не только будет отключение от скрина, а и logout из самой ssh-сессии.

Клавиши:

Регистр, как обычно в *nix-системах, имеет значение; Ctrl+a – это управляющая комбинация клавиш и после нее идет какая-либо клавиша.
Ctrl+a space — переключиться на след. окно в сеансе;
Ctrl+a c — создать новое окно;
Ctrl+a A — назвать текущее окно;
Ctrl+a " (шифт и русская э на английской раскладке) — посмотреть список окон с возможностью переключения в какое-либо из них;
Ctrl+a ‘ — переключиться на определенное окно по названию или номеру;
Ctrl+a [0-9] — переключиться на соответствующее окно (нумерацию можно посмотреть с помощью Ctrl+a «);
Ctrl+a a — переключение между двумя последними окнами;
Ctrl+a n — переключиться на следующее окно;
Ctrl+a p — на предыдущее, также можно использовать BackSpace, вместо символа p;
Ctrl+a d — отсоединиться от screen;
Ctrl+a Esc — переводит screen в «режим копирования». Становиться доступным передвижение по экрану (кстати, работают комбинации клавиш перемещения, как в VIM-e или less, в том числе и поиск – «/»);
Ctrl+a M — слежение за активностью (сработает при появлении новой информации);
Ctrl+a _ — для слежения за бездействием (сработает при прекращении поступления информации в терминал);
Ctrl+a * — показать список всех подключенных сейчас дисплеев.
 
  • Like
Реакции: Merfy и 4akN

MKamois

Пользователь
Пользователь
5 Июн 2012
101
6
18
36
А как убить скрин? Не заходя на него.
-d|-D [pid.tty.host]
не запускает новый сеанс, а отключает вместо этого уже запущенный ранее. Достигается тот же эффект, что и в с случае нажатия клавиш "C-a d" на управляющем терминале screen. Ключ -D эквивалентен ключу power detach. Если ни к одному сеансу нельзя обратиться, опция игнорируется.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Последние ресурсы

Статистика форума

Темы
3.838
Сообщения
21.199
Пользователи
7.612
Новый пользователь
Dendroid