Если вам нужно взаимодействовать с фоновым процессом, вы можете снова перевести его в
приоритетный режим. Если у вас выполняется только один фоновый процесс, вы можете
переключиться на него, набрав:
Если программа не завершила своё выполнение, она возьмёт под свой контроль ваш
терминал, и вы не сможете получить доступ к приглашению командной строки. Иногда
программа завершает своё выполнение, работая в фоновом режиме. В этом случае вы получите
сообщение типа:
[1]+ Done /bin/ls $LS_OPTIONS
|
Это означает, что фоновый процесс (в данном случае ls - не
слишком интересно) завершил свою работу.
Одновременно могут выполняться несколько фоновых процессов. В этом случае вам нужно
узнать, какой именно процесс вам нужно перевести назад в приоритетный режим. Просто
набрав fg, вы вернёте назад процесс, который был последним
переведён в фоновый режим. А что, если у вас целый список этих фоновых процессов? К
счастью в bash'е есть команда для вывода перечня всех заданий. Называется она jobs и её вывод представляет собой нечто, похожее на следующее:
% jobs
[1] Stopped vim
[2]- Stopped amp
[3]+ Stopped man ps
|
По сути это список всех процессов, переведённых в фоновый режим. Как видите, все они
остановлены (stopped). Это означает, что работа этих процессов приостановлена. Числа
слева - это идентификаторы, согласно которым сортируются все фоновые процессы.
Идентификатором с плюсом (man ps) отмечен процесс, который будет
переведён в приоритетный режим, если вы наберёте просто fg.
Если вам нужно переключиться в vim, наберите следующее:
и vim возьмёт консоль под свой контроль. Перевод процессов в
фоновый режиме весьма полезен, если у вас есть только один терминал через коммутируемое
подключение. У вас может быть запущено несколько программ, работающих в одном терминале,
между которыми вы можете периодически переключаться.