8.11. Управление процессами

Как вам показал Раздел 8.7, «Редактирование текстов», программы можно запускать из оболочки. Приложения с графическим интерфейсом пользователя нуждаются в системе X Window и могут запускаться только из окна терминала внутри графического интерфейса пользователя. Для открытия файла под именем vacation.pdf в вашем домашнем каталоге из окна терминала в KDE или GNOME просто запустите xpdf ~/vacation.pdf для открытия программы просмотра PDF, отображающей ваш файл.

Когда вы посмотрите на окно терминала снова, вы поймете, что командная строка заблокирована, пока работает программа просмотра PDF, это означает, что приглашение командной строки отсутствует. Для того, чтобы изменить это, нажмите Ctrl+Z для приостановки процесса и введите bg для отправки переноса на задний план. Теперь вы по-прежнему можете работать с vacation.pdf, тогда как приглашение командной строки доступно для ввода дальнейших команд. Более простым способом добиться этого является отправка процесса на задний план сразу же после его запуска. Для этого добавьте знак & в конец команды:

xpdf ~/vacation.pdf &

Если вы запустили несколько процессов на заднем плане (также называемых заданиями) из одной оболочки команда jobs даст вам обзор заданий (включая номера заданий и их состояние):

tux@linux:~> jobs
[1]   Running        kpdf book.opensuse.startup-xep.pdf &
[2]-  Running        kpdf book.opensuse.reference-xep.pdf &
[3]+  Stopped        man jobs

Для переноса задания на передний план снова введите fg номер_задания.

Тогда как job показывает только процессы, находящиеся на заднем плане, запущенные из определенной оболочки, команда ps (запущенная без параметров) показывает список всех процессов, которые вы запустили. Ниже вы увидеть пример вывода команды:

tux@linux:~> ps
PID TTY          TIME CMD
15500 pts/1    00:00:00 bash
28214 pts/1    00:00:00 xpdf
30187 pts/1    00:00:00 kate
30280 pts/1    00:00:00 ps

В случае, если программа не может быть завершена обычным образом, используйте команду kill для остановки процесса (или процессов), принадлежащих этой программе. Для этого укажите идентификатор процесса (PID), показываемый в выводе команды ps. Например, для закрытия редактора Kate в примере выше введите

kill 30187

Это пошлет сигнал TERM, который приказывает программе прекратить свою работу.

В качестве альтернативы, если программа или процесс, который вы хотите завершить является заданием на задним плане и показывается командой jobs, вы можете также использовать команду kill в сочетании с номером задания для завершения этого процесса:

kill % номер_задания

Если kill не помогает—иногда это просходит с «беглыми» программами—попробуйте

kill -9 PID

Это пошлет сигнал KILL вместо сигнала TERM, завершающий указанный процесс в большинстве случаев.

Этот раздел предназначен только для введения в самые основные команды управления заданиями и процессами..