Реферат: Основные принципы работы в Linux

Команда 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.

К-во Просмотров: 301
Бесплатно скачать Реферат: Основные принципы работы в Linux