# Использование screen для запуска процессов в фоне

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

* Для установки screen на сервер воспользуйтесь командой

{% tabs %}
{% tab title="Debian/Ubuntu (apt)" %}

```bash
apt install screen -y
```

{% endtab %}

{% tab title="CentOS (yum)" %}

```bash
yum install screen -y
```

{% endtab %}
{% endtabs %}

## Работа с пространствами

{% hint style="info" %}
**Шпаргалка на будущее. Основные команды в двух словах**

* `screen -S name`: создать пространство с именем `name`
* Сочетание клавиш `Ctrl` + `A` + `D`: свернуть пространство (выйти из него)
* `screen -ls`: посмотреть список запущенных пространств
* `screen -x name`: зайти в запущенное пространство

**Далее подробное описание каждой из этих команд ->**
{% endhint %}

{% hint style="warning" %}
**Обратите внимание!** При использовании команд важно сохранять регистр. -S и -s это разные аргументы. Если указано, например, -S, необходимо использовать именно заглавную букву
{% endhint %}

### Создать новое пространство

* Выполните эту команду, чтобы создать новое пространство. **После создания вы сразу окажетесь внутри созданного пространства**
* Переменную `name` замените на любое удобное имя. Оно будет использоваться для переключения между пространствами, чтобы вы знали, что есть что

```bash
screen -S name
```

### Свернуть пространство (выйти из него)

* Чтобы свернуть пространство (выйти из него), в котором вы находитесь, необходимо нажать сочетание клавиш `Ctrl` + `A` + `D`
* Это вернет вас обратно туда, где вы были перед входом в пространство

### **Список доступных пространств**

* Используйте команду, чтобы посмотреть список доступных пространств

```bash
screen -ls
```

Вы получите список запущенных пространств в примерно таком виде:

![](/files/dCM3pXpjRlj7t4BDg9Xr)

{% hint style="warning" %}
**Обратите внимание!** У вас есть техническая возможность заходить в пространство внутри пространства. Получится такая (нежелательная) матрешка. Чтобы не запутаться, всегда проверяйте, где вы находитесь, прежде чем использовать команды `screen -S` (создание пространства) или `screen -x` (команда для входа в пространство, о которой расскажем чуть ниже)

В скобочках справа в списке пространств вы видите подписи **Attached** и **Detached**

* **Attached** означает, что прямо сейчас вы находитесь внутри этого пространства. Нажмите сочетание клавиш `Ctrl` + `A` + `D`, чтобы свернуть его (выйти из него)
* **Detached** означает, что это пространство в данный момент работает в фоне (то есть вы в нем не находитесь)
  {% endhint %}

### Вернуться в уже созданное пространство

* Используйте эту команду, чтобы развернуть пространство (войти в него)

```
screen -x name
```

* Вместо переменной `name` подставьте имя пространства из списка, который можно узнать командой `screen -ls`. Обратите внимание на подписи *Attached* и *Detached* в списке пространств, о которых мы говорили в предыдущем блоке

{% hint style="info" %}
Если у вас создано только одно пространство, команду `screen -x` можно использовать без указания имени пространства
{% endhint %}

### Удалить созданное пространство

* Если вы хотите полностью завершить работу в определенном пространстве, зайдите в него (`screen -x name`) и напишите команду

```
exit
```

* В таком случае пространство будет удалено и пропадет из списка `screen -ls`

{% hint style="warning" %}
**Обратите внимание!** Команду exit нужно выполнять, когда запущенные процессы внутри пространства уже остановлены
{% endhint %}

## Нужна помощь?

[Напишите нам](https://minehosting.ru/chat), мы поможем разобраться 😉


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.minehosting.ru/servers/screen.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
