11.2. Перевод в приоритетный режим

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

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