Назад | Перейти на главную страницу

Помещение процесса в фоновый режим без его остановки - (ctrl + z)?

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

wget http://site.com/bigfile.zip

а затем решаю, что хочу переместить это на задний план, я знаю, что могу использовать что-то вроде ctrl+z а потом bg 1 (или jobs сначала, если необходимо получить идентификатор), чтобы поместить его в фоновый режим.

Мой вопрос в том, есть ли способ переместить задание с переднего плана прямо на задний план, не останавливая его - как еще один ярлык, кроме ctrl+z это сделало бы это.

Я также понимаю, что могу добавить & до конца исходной команды, чтобы запустить ее в фоновом режиме, но вопрос заключается в том, когда вы запускаете процесс на переднем плане и затем поймите, что вы хотите переместить его на задний план.

Да, конечно: экран (1) это ответ.

Для начала добавьте screen -R в ~ / .bash_profile или аналогичный, выйдите из системы и снова войдите в систему.

Чтобы продолжить то, что выполняется в фоновом режиме, нажмите Control-A, затем N. Это создаст новый экран терминала на переднем плане, а ваш рабочий процесс будет плавно продолжен в фоновом режиме.

Нажмите Control-A, затем ", чтобы получить интерактивный список открытых экранов, или нажмите Control-A, затем номер, чтобы переключиться непосредственно на конкретный экран.

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

  1. Вы можете переключаться между процессами гораздо более плавно, чем с помощью Control-Z, bg, fg и т. Д.
  2. Если ваш сеанс терминала отключается, ваши процессы (например, wget http://example.com/bigfile.iso) НЕ прекратится! Все ваши сеансы оболочки будут ждать вас, когда вы снова подключитесь.

Для получения дополнительной информации прочтите экран (1) справочная страница, или Руководство по экрану GNU.

bg запускает остановленное задание и оставляет его работающим в фоновом режиме. В принципе fg и bg делают то же самое, они возобновляют процесс, но fg делает это на переднем плане, пока bg делает это в фоновом режиме.

Просто беги bg %(number of the job) и вы получите сообщение "runnning". Если вы проверите свои задания, вы увидите, что ваша работа выполняется, а не остановлена.