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


34

Когда я запускаю программу из терминала, я не могу снова использовать этот экземпляр терминала, пока не закрою программу.

Есть ли способ выполнить программу / приложение из терминала, не блокируя терминал, пока программа не завершится?

Ответы:


62

Вы ищете контроль работы, который поддерживается большинством оболочек. Смотрите эту статью для ознакомления. В какой-то момент вы также можете прочитать официальную документацию по bash, который является оболочкой по умолчанию в Ubuntu.

Короче говоря: для автоматического запуска задания в фоновом режиме ставьте &после вызова программы

$ program &

Вы также можете остановить программы с помощью, CTRLzа затем положить их в фоновом режиме позже сbg

$ program
^Z
$ bg

Чтобы заставить их бегать на переднем плане снова используйте fg.


Обнаружение, что есть официальная документация для bash, было большой вторичной помощью, которую я получил от этого ответа, спасибо!
Добавление

1

Если управление заданиями не совсем то, что вам нужно, посмотрите на экран .

Экран управляет несколькими виртуальными терминалами, поэтому вы можете запускать несколько программ без их взаимодействия друг с другом. Например, вы можете запускать mocp (музыкальный проигрыватель), aptitude (менеджер пакетов) и vim (текстовый редактор) одновременно, даже если все они являются интерактивными программами, которые обрабатывают терминал так, как если бы у них был единственный доступ.

Это облегчает переключение с одной задачи на другую, например, создание нового терминала на экране для чтения справочной страницы - без потери места в другом месте - перелистывание назад и вперед и т. Д.


1

В Ubuntu 16.10 я не могу заставить работать ctrl + Z, упомянутую в другом ответе, но

program &
^C

Работает ли у меня, другими словами, ctrl + cпосле запуска программы с конечным амперсандом.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.