Что же это за программа такая? Объясню на пальцах.. Вы работаете удаленно по ssh и вам надо запустить какой-то скрипт, который будет выполняться достаточно долго и в процессе выполнения выводит на экран некую информацию. Связь между удаленной машиной может прерваться и тогда вы не сможете точно сказать выполнился ли до конца скрипт или на каком он этапе работы.
А вот если запустить этот скрипт в программе screen то впоследствии можно будет всегда присоединиться к этому процессу и посмотреть этап его выполнения..
Я уже давно знал про эту программу, но желания просто так разбираться с ней не было. Но в уме я ее держал и думал, что наверняка представится случай, когда надо будет применить screen 🙂 И вот случай настал. Запуск quake2 серверов под оболочкой screen. Это даже удобнее чем было раньше. Карту сменить, или еще дать какую либо команду на выполнение на сервере quake2 теперь пара пустяков.
Сначала установим саму программу. Метод установки выберите сами в зависимости от вашего дистрибутива. Исходники программы брать тут.
Итак, программа установлена, можно приступать.
Есть скрипт запуска сервера quake2 FFA. Выглядит он так.
#!/bin/bash
cd /home/mik/games/quake2 && \
su quake -c '/home/mik/games/quake2/quake2 +game tourney +exec my_lithium.cfg \
+set dedicated 1 +set port 27910 +map q2dm1'
Чтобы корректно запустить данный скрипт и выйти с терминала где этот процесс был запущен, воспользуемся screen. Вот пример запуска в виде стартового скрипта в системе:
#!/bin/sh
screen -d -m -A -S quake_ffa /home/mik/run_ffa
Здесь:
- -d, -m – запуск сессии в detatch режиме (для стартовых скриптов).
- -A – подгоняет размер окна под размер текущего терминала.
- -S quake_ffa – устанавливает имя для данной сессии.
- /home/mik/run_ffa – собственно сам скрипт (см. выше).
Теперь, чтобы обратиться к серверу quake2, достаточно лишь набрать в консоле
screen -r quake_ffa
Чтобы выйти из консоли screen надо нажать Ctrl+a d
Вот еще несколько полезных команд screen
- Ctrl + A c – cоздать новое окно screen и сразу переключиться в это окно.
- Ctrl-A A – ввести заголовок текущего окна.
- Ctrl + A 0, 1,2 – 9 – переключение между окнами screen.
- Ctrl + A k – убивает текущее окно screen
Команд у screen очень много, подробнее всегда можно посмотреть в переведенной man странице screen.
Удачи в освоении!