Управление заданиями
Иногда возникает необходимость приостановить задание без перевода в фоновый режим. К примеру, при работе в текстовом редакторе emacs (или любом другом) может понадобиться ввести одну или несколько команд, затем опять вернуться в редактор. Чтобы не выходить полностью из редактора, приостановите его работу, нажав CTRL + Z, введите требуемые команды и вновь вернитесь к работе. Интерактивные программы плохо приспособлены к выполнению в фоновом режиме, поэтому лучше держать их остановленными до возврата к работе в режиме переднего плана.
Возврат остановленного или переведенного в фоновый режим задания в режим переднего плана происходит по команде fg. Так, остановленный в предыдущем примере редактор emacs возвращается к работе в режиме переднего плана командой:
$ fg
При наличии нескольких остановленных или выполняемых в фоновом режиме заданий необходимо указать номер задания, переводимого в режим переднего плана. Если задание emacs имело номер 2, то команда его перевода в режим переднего плана будет следующей:
$ fg 2
Наконец, в некоторых случаях остановленное или фоновое задание приходится завершать либо уничтожать. Для уничтожения процесса, указанного его идентификатором (PID), используется команда kill. Можно воспользоваться командой ps для определения идентификатора процесса (см. страницу руководства этой команды) либо уничтожать остановленные или фоновые задания непосредственно по их номерам.
Например, при наличии в системе двух фоновых заданий, когда команда jobs выводит на экран:
[1] – Running find / – name '*.tmp' – print >templist & [2]+ Running ls – 1R / >dirlist & [3]+ Stopped emacs somefile
Уничтожение задания ls производится командой:
$ kill %2
Обратите внимание на знак процента перед номером задания. Без него команда пыталась бы уничтожить процесс с идентификатором PID, равным 2. Необходимо различать номер процесса и идентификатор PID, поскольку это вещи абсолютно разные.
Рассмотрим следующий пример.
Имея один фоновый процесс, вы запускаете второе задание. Система тут же присваивает ему идентификатор PID, представляющий численное значение, например 100, 999 или 25 678. Малые значения PID. (особенно, меньше 100) применяются для обозначения всевозможных системных процессов, запускаемых одновременно с загрузкой Linux и выполняемых до выключения компьютера. Следовательно, совпадение идентификатора PID и номера задания весьма маловероятно.