Я знаю, что есть два или более способов запустить задание и поместить его в фоновый режим.
Прямо сейчас я использовал ctrl-z, чтобы поместить передачу scp в фоновый режим, потому что я заметил, что это займет некоторое время. Как мне запустить процесс в фоновом режиме, чтобы я мог писать другие команды, пока я жду его завершения?
Примечание. Я могу создать новый терминал, однако в этом случае я подключился по SSH к двум разным серверам, поэтому неудобно делать это для каждого параллельного задания, которое я хочу выполнять в фоновом режиме.
Важно отметить, что хотя для некоторых процессов CTRL + Z означает фон, поведение по умолчанию - STOP, выполнение которого не продолжается. Самый безопасный способ - запустить команду с символом & в конце, а затем выполнить команду «disown», чтобы полностью перевести ее в фоновый режим. Однако вы не сможете снова поставить его на передний план.
Если вам нужен простой способ следить за фоновыми задачами, подумайте о том, чтобы узнать о screen
. В качестве основного урока введите screen scp myfile server:/mydest
, затем нажмите CTRL + A D, чтобы «отсоединить» сеанс экрана. Вы можете вызвать этот сеанс, набрав "screen -r" даже после выхода из системы! :)
screen
имеет множество дополнительных функций, таких как несколько окон, активная панель задач и т. д. Вот руководство: ссылка на сайт
После того, как вы использовали ^ Z, чтобы что-то ОСТАНОВИТЬ, введите "bg", чтобы оно работало в фоновом режиме. "fg" вернет его на передний план, пока вы не вышли из системы.
Я бы рекомендовал запускать такие программы, как scp in screen. Причина в том, что, помещая команду в фоновый режим, она сбрасывает вывод в ваш текущий терминал, и вы не можете легко отключиться от сеанса ssh и повторно подключиться к нему в середине вашей работы.
Экран запуска. Перед вами новый терминал. Запустите свой процесс. Теперь нажмите «ctrl-a d», и вы должны получить строку с надписью
[Screen detached]
Вы можете повторно подключиться к своему экрану, запустив:
# screen -r
Вы должны вернуть свой оригинальный терминал.
Для фоновых команд просто добавьте & после команды.