Если вам нужно взаимодействовать с фоновым процессом, вы можете снова перевести его в приоритетный режим. Если у вас выполняется только один фоновый процесс, вы можете переключиться на него, набрав:
% fg |
Если программа не завершила своё выполнение, она возьмёт под свой контроль ваш терминал, и вы не сможете получить доступ к приглашению командной строки. Иногда программа завершает своё выполнение, работая в фоновом режиме. В этом случае вы получите сообщение типа:
[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, наберите следующее:
% fg 1 |
и vim возьмёт консоль под свой контроль. Перевод процессов в фоновый режиме весьма полезен, если у вас есть только один терминал через коммутируемое подключение. У вас может быть запущено несколько программ, работающих в одном терминале, между которыми вы можете периодически переключаться.