Командная строка Linux. Полное руководство - [41]

Шрифт
Интервал

2

INT

Прервать. Выполняет ту же функцию, что и нажатие комбинации CTRL+C в терминале. Обычно приводит к завершению программы

9

KILL

Уничтожить. Это специальный сигнал. В большинстве случаев программы могут сами решать, как реагировать на сигналы, вплоть до полного их игнорирования, но сигнал KILL в действительности никогда не передается целевой программе. Вместо этого ядро немедленно завершает указанный процесс. Когда процесс завершается таким способом, он не имеет возможности «прибрать за собой» или сохранить результаты своей работы. По этой причине сигнал KILL следует использовать только как крайнее средство, когда другие сигналы на завершение программы не приводят к желаемому результату

15

TERM

Завершить. Это сигнал по умолчанию, посылаемый командой kill. Если программа достаточно «живая», чтобы принять этот сигнал, она завершится

18

CONT

Продолжить. Этот сигнал восстанавливает нормальную работу процесса после сигнала STOP

19

STOP

Приостановить. Этот сигнал заставляет процесс приостановиться, не завершаясь. Подобно сигналу KILL, он не передается целевому процессу и потому не может быть проигнорирован им


Поэкспериментируем с командой kill:

[me@linuxbox ~]$ xlogo &

[1] 13546

[me@linuxbox ~]$ kill -1 13546

[1]+ Hangup xlogo

Здесь мы запустили программу xlogo в фоновом режиме и затем с помощью коман­ды kill послали ей сигнал HUP. Программа xlogo завершилась, и командная оболочка сообщила, что фоновый процесс принял сигнал разрыва связи. Иногда необходимо нажать клавишу ENTER пару раз, чтобы увидеть сообщение. Обратите внимание, что сигнал можно указать по номеру или по имени, включая имена сигналов, начинающиеся с префикса SIG:

[me@linuxbox ~]$ xlogo &

[1] 13601

[me@linuxbox ~]$ kill -INT 13601

[1]+ Interrupt xlogo

[me@linuxbox ~]$ xlogo &

[1] 13608

[me@linuxbox ~]$ kill -SIGINT 13608

[1]+ Interrupt xlogo

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

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

Помимо сигналов, наиболее часто используемых с командой kill и перечисленных в табл. 10.4, система часто использует другие сигналы, перечисленные в табл. 10.5.

Таблица 10.5. Другие часто используемые сигналы

Номер

Имя

Значение

3

QUIT

Выйти

11

SEGV

Ошибка сегментации. Этот сигнал посылается программе, предпринявшей попытку недопустимого обращения к памяти, то есть попытку выполнить запись в память, доступ к которой запрещен

20

TSTP

Сигнал «стоп» с клавиатуры. Этот сигнал посылается терминалом после нажатия комбинации CTRL+Z. В отличие от сигнала STOP, TSTP передается программе, и программа может решить игнорировать его

28

WINCH

Изменение окна. Этот сигнал посылается системой при изменении размеров окна терминала. Некоторые программы, такие как top и less, реагируют на этот сигнал, обновляя свой вывод в соответствии с новыми размерами окна терминала


Любопытные пользователи могут получить полный список сигналов, выполнив следующую команду:

[me@linuxbox ~]$ kill -l

Посылка сигналов нескольким процессам с помощью killall


Кроме того, существует возможность с помощью команды killall послать сигнал сразу нескольким процессам, соответствующим указанной программе или имени пользователя. Она имеет следующий синтаксис:

killall [-u пользователь] [-сигнал] имя...

Для демонстрации запустим пару экземпляров программы xlogo и затем завершим их:

[me@linuxbox ~]$ xlogo &

[1] 18801

[me@linuxbox ~]$ xlogo &

[2] 18802

[me@linuxbox ~]$ killall xlogo

[1]- Terminated xlogo

[2]+ Terminated xlogo

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

Другие команды управления процессами


Так как мониторинг процессов является одной из важнейших задач системного администрирования, существует множество команд, помогающих в этом. В табл. 10.6 перечислены некоторые из них, с ними вы можете поэкспериментировать.

Таблица 10.6. Другие команды управления процессами

Команда

Описание

pstree

Выводит список процессов в виде древовидной структуры, отражающей отношения «родитель—потомок» между процессами

vmstat

Выводит мгновенный снимок с информацией об использовании системных ресурсов, включая память, файл подкачки и объем дискового ввода/вывода. Чтобы увидеть, как изменяется эта информация с течением времени, передайте команде интервал задержки (в секундах) между обновлениями (например, vmstat 5). Завершить работу команды можно нажатием CTRL+C

xload

Программа с графическим интерфейсом, показывающая изменение нагрузки на систему с течением времени

tload

Работает подобно программе xload, но рисует график в терминале. Завершается работа команды нажатием CTRL+C


Часть II. Окружение и настройка

11. Окружение


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