Читаем Командная строка Linux. Полное руководство полностью

Теперь, когда мы можем видеть процессы и наблюдать за ними, можно приступать к управлению ими. Роль подопытной морской свинки в наших экспериментах исполнит маленькая программка xlogo. Программа xlogo — это демонстрационная программа, поставляемая в составе X Window System (механизм создания графического изображения на дисплее), которая просто отображает окно с логотипом X. Для начала давайте познакомимся с объектом экспериментов:

[me@linuxbox ~]$ xlogo

После ввода команды на экране должно появиться небольшое окно с логотипом. В некоторых системах xlogo может выводить предупреждающее сообщение, но его можно смело игнорировать.

ПРИМЕЧАНИЕ

Если программа xlogo отсутствует в системе, попробуйте вместо нее использовать gedit или kwrite.

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

Заметили ли вы, что командная оболочка не вывела приглашения к вводу после выполнения команды? Это объясняется тем, что командная оболочка ждет, пока программа завершится. То же самое происходило со всеми программами, которые мы запускали до сих пор. Если закрыть окно xlogo, оболочка выведет приглашение к вводу.

<p>Прерывание процесса</p>

Давайте понаблюдаем, что происходит после запуска xlogo. Сначала введите коман­ду xlogo и убедитесь, что программа работает. Затем вернитесь в окно терминала и нажмите комбинацию CTRL+C.

[me@linuxbox ~]$ xlogo

[me@linuxbox ~]$

Комбинация CTRL+C в терминале прерывает выполнение программы. Фактически мы вежливо попросили программу завершиться. После нажатия CTRL+C окно xlogo закроется и командная оболочка выведет приглашение к вводу.

Таким способом можно прервать выполнение многих (но не всех) программ команд­ной строки.

<p>Перевод процессов в фоновый режим</p>

Представьте, что нам потребовалось вернуться в командную оболочку, не прерывая выполнения программы xlogo. Мы можем сделать это, переведя программу в фоновый режим работы. Считайте, что терминал имеет передний план (то, что видно на поверхности, например приглашение к вводу) и задний план (фон, то, что скрыто под поверхностью). Чтобы запустить программу сразу в фоновом режиме, нужно добавить в конец команды символ амперсанда (&):

[me@linuxbox ~]$ xlogo &

[1] 28236

[me@linuxbox ~]$

После ввода такой команды на экране появится окно xlogo, а командная оболочка вернется в приглашение к вводу, но перед этим выведет таинственные числа. Это сообщение является частью механизма управления заданиями (job control). Таким способом командная оболочка сообщает, что мы запустили задание с номером 1 ([1]) и оно получило идентификатор процесса PID 28236. Если теперь выполнить команду ps, можно увидеть этот процесс:

[me@linuxbox ~]$ ps

PID TTY TIME CMD

10603 pts/1 00:00:00 bash

28236 pts/1 00:00:00 xlogo

28239 pts/1 00:00:00 ps

Механизм управления заданиями также дает возможность вывести список заданий, запущенных в терминале. Этот список можно получить командой jobs:

[me@linuxbox ~]$ jobs

[1]+ Running xlogo &

Результаты показывают, что у нас имеется одно выполняющееся задание с номером 1, которое было запущено командой xlogo &.

<p>Возврат процесса на передний план</p>

Процесс в фоновом режиме не получает ввод с клавиатуры, в том числе не видит попыток прервать его комбинацией CTRL+C. Вернуть процесс на передний план можно командой fg, как в следующем примере:

[me@linuxbox ~]$ jobs

[1]+ Running xlogo &

[me@linuxbox ~]$ fg %1

xlogo

За командой fg должен следовать знак процента и номер задания (эта комбинация называется спецификатором задания, или jobspec). Если имеется только одно фоновое задание, спецификатор можно опустить. Теперь завершим xlogo вводом CTRL+C.

<p>Приостановка процесса</p>

Иногда необходимо приостановить процесс на время, не завершая его. Это часто делается с целью перевести процесс переднего плана в фоновый режим. Чтобы приостановить процесс переднего плана, используйте комбинацию CTRL+Z. Давайте попробуем. В командной строке введите команду xlogo, нажмите ENTER, а затем комбинацию CTRL+Z:

[me@linuxbox ~]$ xlogo

[1]+ Stopped xlogo

[me@linuxbox ~]$

После приостановки xlogo убедимся, что программа действительно приостановилась, для этого попытаемся изменить размер окна xlogo. Увы, программа никак не реагирует на наши действия. Далее можно или вернуть программу на передний план командой fg, или перевести ее в фоновый режим командой bg:

[me@linuxbox ~]$ bg %1

[1]+ xlogo &

[me@linuxbox ~]$

Так же как в случае с командой fg, спецификатор задания можно опустить, если имеется только одно задание.

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

Перейти на страницу:

Похожие книги

Компьютерные сети. 6-е изд.
Компьютерные сети. 6-е изд.

Перед вами шестое издание самой авторитетной книги по современным сетевым технологиям, написанное признанным экспертом Эндрю Таненбаумом в соавторстве со специалистом компании Google Дэвидом Уэзероллом и профессором Чикагского университета Ником Фимстером. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером. В книге последовательно изложены основные концепции, определяющие современное состояние компьютерных сетей и тенденции их развития. Авторы подробно объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до прикладного. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования интернета и компьютерных сетей различного типа. Большое внимание уделяется сетевой безопасности. Шестое издание полностью переработано с учетом изменений, произошедших в сфере сетевых технологий за последние годы, и, в частности, освещает такие технологии, как DOCSIS, 4G и 5G, беспроводные сети стандарта 802.11ax, 100-гигабитные сети Ethernet, интернет вещей, современные транспортные протоколы CUBIC TCP, QUIC и BBR, программно-конфигурируемые сети и многое другое.

Дэвид Уэзеролл , Ник Фимстер , Эндрю Таненбаум

Учебные пособия, самоучители