Почему при запуске VSCode из терминала терминал теперь остается открытым? При закрытии терминала VSCode тоже закрывается SEO оптимизированный заголовок: Почему VSCode запускается из терминала с открытым терминалом и закрывается вместе с ним?

Почему при запуске VSCode из терминала терминал остается открытым, а при его закрытии VSCode также закрывается?

Многие пользователи, работающие с Visual Studio Code (VSCode), задавались вопросом: почему при запуске VSCode из терминала окно терминала остается открытым, а при закрытии самого терминала закрывается и VSCode? В этой статье мы разберём основные причины такого поведения и способы его изменить.

Как запускается VSCode из терминала?

При запуске VSCode из терминала команда обычно выглядит так:

code .

Эта команда открывает текущую папку в редакторе VSCode. Однако за кулисами происходит следующее: терминал запускает процесс VSCode и ждёт его завершения, если процесс не "отсоединён" (detached). Из-за этого терминал остаётся занятым, а закрытие его приводит к завершению работы запущенной через него программы.

Почему терминал остаётся открытым?

Терминал по умолчанию связан с дочерними процессами. Если запускать VSCode без отдельного запуска процесса, то терминал не закрывается, пока VSCode открыт. Это объясняется тем, что VSCode запущен как дочерний процесс терминала.

Что происходит при закрытии терминала?

В традиционных терминальных сессиях закрытие окна терминала отправляет сигнал завершения всем дочерним процессам. Поэтому, если VSCode запущен в рамках текущей сессии терминала, он тоже получает сигнал закрытия и завершает работу.

Как запускать VSCode из терминала, чтобы терминал не блокировался?

Чтобы терминал не ожидал закрытия VSCode и можно было закрыть терминал без закрытия редактора, нужно "отсоединить" процесс VSCode от терминала. Для этого используют разные методы в зависимости от операционной системы.

  • Linux / macOS

Можно запустить VSCode в фоновом режиме, добавляя амперсанд и перенаправляя вывод:

bash
code . & disown

Или использовать nohup:

bash
nohup code . >/dev/null 2>&1 &

  • Windows

В Windows PowerShell можно использовать командлет Start-Process:

powershell
Start-Process code

Или в cmd:

cmd
start code

Такие команды запускают VSCode отдельно от терминала.

Зачем это важно?

Если вы запускаете VSCode из терминала и хотите продолжать работу в этом окне, не дожидаясь закрытия VSCode, использование отрыва процесса позволит эффективно управлять терминалом. Также это важно при автоматизации, скриптах и работе на удалённых серверах.

Итог

Поведение терминала при запуске VSCode зависит от того, как именно запускается процесс редактора. Если терминал не отсоединяет процесс VSCode, он остаётся связанным, и при закрытии терминала VSCode также закрывается. Чтобы избежать этого — запускайте VSCode с опцией отсоединения процесса (на Linux/macOS через & disown или nohup, на Windows — через start или Start-Process).

Таким образом вы сможете спокойно работать с терминалом и VSCode, не блокируя возможность пользоваться каждой программой независимо.


Ключевые слова: запуск VSCode из терминала, закрытие терминала и VSCode, терминал остается открытым, отсоединение процесса VSCode, запуск code из командной строки, работа VSCode и терминал, как запустить VSCode без закрытия терминала.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *