Запуск приложений в фоном режиме в Linux
< Все темы
Печать

Запуск приложений в фоном режиме в Linux

В этой статье описывается краткое руководство по использованию утилиты Screen.

Screen — утилита для создания виртуальных терминалов в Linux, которые продолжают работать, даже если пользователь отключится от SSH-сессии. Это означает, что с помощью неё можно запускать приложения, которые будут работать в фоновом режиме, такие как сервер TeamSpeak, игровой сервер Minecraft, Counter-Strike и прочие.

Для установки screen на Ubuntu Server или Debian используйте команду «apt install -y screen«. Для установки на CentOS 7, «yum install screen«.

Чтобы создать виртуальный терминал, используйте команду «screen -S названиеСессии«. Пусть в этом примере она будет называться myWonderfulSession.

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

Для тестирования запустим приложение, которое должно выполняться в фоновом режиме, например «ping yandex.ru«

Чтобы отключиться от виртуального терминала, используйте сочетание клавиш Ctrl + A + D

Теперь вернёмся обратно в виртуальный терминал и проверим работу запущенного ранее приложения. Для того, чтобы подключиться в уже созданную сессию, используйте команду «screen -x названиеСессии«. В нашем примере это «screen -x myWonderfulSession«

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

Чтобы удалить виртуальный терминал, отключитесь от него сочетанием клавиш Ctrl + A + D.

Нам нужно получить PID нашего виртуального терминала. Для этого вызовите список всех виртуальных терминалов командой «screen -ls» (перед последней «s» идёт маленькая «L»).

В списке мы видим наш терминал myWonderfulSession. Число 1094, находящееся перед названием терминала, отделённое точкой, и есть PID терминала (у всех это число будет разное). Теперь нужно «убить» этот терминал. Здесь используется стандартная команда kill: «kill -9 1094«

После этого нужно «очистить» терминал командой: «screen -wipe 1094«

Вызовем список всех терминалов командой «screen -ls» и убедимся, что он удалён: