Смекни!
smekni.com

Основные принципы работы в Linux (стр. 2 из 2)

s или d - изменить интервалл обновления окна.

z - цветное/черно-белое отображение

n или # - количество отображаемых процессов

Можно отсортировать список процессов по использованию процессора (P), памяти (M), времени выполнения (T) и т.п.

Однако, есть и более полезные команды, которые позволяют управлять процессами в интерактивном режиме:

k - снять (kill) задачу. По этой команде будет запрошен идентификатор процесса (PID), после ввода которого, процесс будет завершен.

r - изменить текущий приоритет задачи (renice). Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение приоритета (отображается в колонке NI). Диапазон значений приоритетов - от минус 20 (наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только пользователь root.

Для выхода из top нажмите q

Команда kill

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

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

kill -l

В результате выполнения этой команды вы увидите список номеров и названий сигналов. Послать определенный сигнал выбранному процессу с помощью ввода в командной строке:

kill <-номерсигнала> номер PID выбранного процесса

Например, нам нужно завершить работу приложения Midnight Commander (mc).

Определим идентификатор процесса mc:

ps -A | grep mc

Пусть PID= 11597.

Посылаем сигнал SIGQUIT (номер 3):

kill -3 11597

После чего процесс mc обработает сигнал GIGQUIT и нормально завершится. Однако, если mc "завис", то, естественно, завершиться он не сможет, поскольку подпрограмма обработки сигнала SIGQUIT не получит управления. В таких случаях используется сигнал под номером 9 (SIGKILL), обрабатываемый ядром операционной системы, и принудительно завершающий указанный процесс:

kill -9 11597

Если в команде kill номер сигнала не указан, то тогда используется SIGKILL, предыдущую команду можно было ввести как kill PID:

kill 11597

Завершение процесса прерывает и запущенные в нем процессы.

Для завершения процесса по имени используется команда killall:

• killall mc - завершить процесс, в имени которого есть &quotmc";

• killall -u user - завершить процессы, порожденные пользователем user.

Команды nice и renice измененяют приоритет процессов. При запуске процесса, его приоритет задается значением родительского процесса, например, терминала xterm или командной оболочки shell. Команда nice позволяет запустить процесс с приоритетом, равным сумме родительского (например 8) и числа, задаваемого в качестве опции команды nice:

nice -<число> команда

nice -4 mc - запустит mc с приоритетом = 8+4=12

Команда renice используется для изменения приоритета уже запущенного процесса:

renice <число> -p PID

renice 4 -p 11597 - установить значение приоритета для процесса mc (PID=11597) равным 4.

После выполнения, renice выдаст строку результата:

11597: old priority 12, new priority 4 - старый приоритет 12, новый приоритет 4

Задание нулевого и отрицательного числа приоритета допустимо лишь для пользователя с правами root.