Я уже знаю, что нажатие ctrl+z
останавливает приложение, а затем я могу отправить приложение в фоновый режим с помощью bg
команды, но это означает, что существует короткий период времени, в течение которого приложение останавливается.
Как отправить приложение напрямую в фоновый режим, не останавливая его?
shell
command-line
background-process
jobs
trusktr
источник
источник
ctrl+z
последующим запуском командыbg
. Существует ли одна комбинация клавиш для отправки приложения в фоновый режим?Ответы:
Отправка приложения из переднего плана в фоновый режим требует взаимодействия как терминала, так и оболочки. Терминал не может сделать это один, потому что оболочка должна установить группу процессов переднего плана. Оболочка не может сделать это одна, потому что терминал должен обрабатывать нажатие клавиши (оболочка не находится на переднем плане, поэтому она не может получить нажатие клавиши).
Близкое приближение - отправить приложение на задний план очень быстро. В конце концов, приложение делит процессорное время с другими, и пауза в несколько сотых секунды не должна иметь значения. (Это относится к приложениям реального времени, поэтому убедитесь, что они запускаются в фоновом режиме.) Я использую привязку оболочки для Ctrl+, Zкоторая отправляет последнее заданное задание в фоновый режим. Таким образом, нажатие Ctrl+ Z Ctrl+ Zотправляет задание в фоновый режим с минимальным временем приостановки.
Вот моя привязка zsh, которая также «фоновая» полусведенная команда, когда командная строка не пуста .
На английском языке для не-zsh-пользователей в аудитории:
Определите функцию оболочки, которая выполняет следующие действия:
Свяжите эту функцию с Ctrl+ Z.
Если вы просто хотите использовать фоновое поведение независимо от того, пуста ли командная строка:
Я не знаю, можете ли вы сделать то же самое в bash. Это должно быть так же просто
bind -x '"\C-z": bg'
, за исключением того, что bash оставляет символ tty stop на месте, поэтому он никогда не получает Ctrl+ Zкак ввод.источник
Вы можете выполнить задание в фоновом режиме, добавив
&
после него.Например, сразу же
tail -f /var/log/messages &
справится с задачей.Как всегда, вы можете видеть, какие задачи вы выполняете с помощью
jobs
команды.Это, конечно, предполагает, что вы еще не выполнили команду.
источник
ctrl+z
затем выполнитьbg
в командной строке, чтобы приложение работало в фоновом режиме. Но между нажатиемctrl+z
и выполнениемbg
есть время, когда приложение полностью приостановлено. Я не хочу этого Как отправить его на фоне сразу ?Фоновая команда выполняется путем добавления к ней амперсанда.
Если он уже запущен, ваш единственный вариант - остановить его, а затем фоновый режим.
источник