Как использовать GNU screen для запуска процессов

Screen — это древняя, но все еще полезная программа операционной системы GNU, которая доступна на большинстве дистрибутивов linux и на компьютерах Mac.

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

Шаги

screen

sh@SH-MacBook-Pro tutorial % screen
Войдите в полноэкранный режим Выйти из полноэкранного режима

Вы должны увидеть начальное сообщение, которое можно просто нажать Enter, чтобы выйти.

Теперь вы «привязаны» к экранной сессии. Чтобы убедиться, что вы прикреплены, вы можете посмотреть список экранов и их статусы, выполнив команду screen -ls:

sh@SH-MacBook-Pro tutorial % screen -ls
There are screens on:
        69475.ttys010.SH-MacBook-Pro      (Attached)
1 Socket in /var/folders/vw/865hm_fd2pj87qtwf_5n329m0000gn/T/.screen.
Войти в полноэкранный режим Выйти из полноэкранного режима

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

sh@SH-MacBook-Pro tutorial % python somescript.py
             >> This is some logging being produced by
             >> a script that you're running
Вход в полноэкранный режим Выйти из полноэкранного режима

Пока ваш процесс производит вывод, вместо нажатия Ctrl+c, вы можете нажать Ctrl + a + d, чтобы «отсоединиться» от экрана. Процесс продолжит выполняться в вашей все еще подключенной экранной сессии. Теперь вы вернетесь в свой обычный терминал и увидите журнал, в котором будет написано, что вы только что отсоединились от экрана:

[detached]
sh@SH-MacBook-Pro tutorial %
Вход в полноэкранный режим Выход из полноэкранного режима

Если вы снова запустите screen -ls здесь, вы увидите, что есть активный экран, от которого вы отсоединились.

sh@SH-MacBook-Pro tutorial % screen -ls
There is a screen on:
    68979.ttys002.SH-MacBook-Pro    (Detached)
1 Socket in /var/folders/vw/865hm_fd2pj87qtwf_5n329m0000gn/T/.screen.
Вход в полноэкранный режим Выход из полноэкранного режима

Чтобы снова подключиться к экрану, вы можете выполнить команду screen -r. Если у вас только один активный экран, вы можете просто выполнить screen -r. Если у вас несколько активных экранов на выбор, выполните screen -r с указанием идентификатора экрана (в данном случае 68979).

sh@SH-MacBook-Pro tutorial % screen -r 68979
Вход в полноэкранный режим Выход из полноэкранного режима

Это приведет вас к сеансу работы с экраном, который вы создали ранее.

sh@SH-MacBook-Pro tutorial % python somescript.py
             >> This is some logging being produced by
             >> a script that you're running
             >> More stuff was logged since we last checked
Войти в полноэкранный режим Выход из полноэкранного режима

Чтобы выйти из экрана, Ctrl + d завершит сеанс. Это уничтожит текущую экранную сессию, и вы не сможете снова подключиться к ней.

Прокрутка

В рамках экранной сессии прокрутка окна терминала вверх с помощью мыши не будет работать как обычно.

Прокрутите экран, к которому вы подключены, войдя в режим «прокрутки назад».

Ctrl + a + Escape введет вас в режим прокрутки назад. Как только вы окажетесь здесь, клавиши со стрелками позволят вам действительно подняться вверх по экрану истории журнала. Мышь по-прежнему не работает, извините.

Оцените статью
devanswers.ru
Добавить комментарий