Если я запускаю процесс, обычно набирая его в командной строке, например
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, затем номер, чтобы переключиться непосредственно на конкретный экран.
Ваше первоначальное требование заключалось в том, чтобы иметь возможность переместить процесс в фоновый режим без его остановки. Экран имеет два дополнительных преимущества, а именно: огромный если вам нравится делать сразу несколько дел:
wget http://example.com/bigfile.iso
) НЕ прекратится! Все ваши сеансы оболочки будут ждать вас, когда вы снова подключитесь.Для получения дополнительной информации прочтите экран (1) справочная страница, или Руководство по экрану GNU.
bg
запускает остановленное задание и оставляет его работающим в фоновом режиме. В принципе fg
и bg
делают то же самое, они возобновляют процесс, но fg
делает это на переднем плане, пока bg
делает это в фоновом режиме.
Просто беги bg %(number of the job)
и вы получите сообщение "runnning". Если вы проверите свои задания, вы увидите, что ваша работа выполняется, а не остановлена.