Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
chast2.doc
Скачиваний:
11
Добавлен:
06.11.2018
Размер:
523.26 Кб
Скачать

Версия System V

Синтаксис: ps[-][efl]

Указываются все активные на данном терминале процессы:

-е расширенный список.

-f полный список с дополнительной информацией;

-1 длинный список с еще более полной информацией.

Установка приоритета процесса при запуске: nice

Синтаксис: nice [-n приоритет] [-приоритет] команда [аргумент]]

Команда nice увеличивает значение niсе value на 10 (или другое заданное значение приоритета) и запускает команду, которой и передается указанный аргумент. Высокое значение nice value означает, что если параллельно выполняются несколько процессов, то данный процесс использует меньше возможностей центрального процессора. Если же активизирован только один процесс, то ему уделяется максимально возможное время расчета. Область применения параметра совершенно понятна: nice используется при запуске программ, выполнение которых в любом случае требует известного времени, но во время их работы другие передаваемые процессору задачи не должны сильно мешать. Значение nice value может быть снижено только системным администратором. Цель уменьшения nice value - предоставление какому-либо другому процессу повышенного приоритета. При порождении нового процесса дочерний процесс получает nice value процесса-родителя.

Изменение приоритета запущенного процесса: renice

Синтаксис: rеnice приоритет [[-р] дескриптор][-u пользователь]

Renice добавляет приоритет к nice value запущенных процессов, если указаны их ID. Можно также изменить приоритет всех процессов, принадлежащих одному или нескольким пользователям (опция -u). Оба способа допустимо объединить в одной командной строке: ключи -р и -u действительны для всех последующих аргументов, пока не будет задана новая опция.

Отправка сигнала: kill

Синтаксис: kill [-сигнал] идентификатор_процесса

kill -l

Команда kill служит для выработки и отправки сигнала одному или нескольким процессам, если указаны их ID. Сигнал определяется через номер или символическое имя (см. табл. 7.2). Установка по умолчанию - ТЕRМ. При получении этого сигнала большинство программ заканчивает работу. Но в некоторых случаях приходится применять сигнал КILL, который немедленно прекращает выполнение любого процесса. Однако резкое завершение может привести к тому, что использовавшиеся программой ресурсы (область памяти, экран или другие устройства) не будут освобождены. В этом случае надо попытаться прекратить выполнение процесса с помощью сигнала ТЕRМ. Многие программы принимают его и закрываются за минимально возможное время, не нарушая при этом порядка.

KILL можно также вызвать с параметром -1, который выводит на экран список всех доступных сигналов

Отправка сигналов командам: killall

Синтаксис: killаll [-сигнал] имя

killаll -l

killall – весьма полезная в UNIX команда. Она отправляет один сигнал всем процессам с указанным именем. В остальном же команда аналогична kill: сигнал передается в виде номера или символического имени. Параметр по умолчанию - 15 (ТЕRМ).

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

Прекращение процесса

Представим такую ситуацию. Вы запустили программу И тут на экране одно за другим появляются сообщения об ошибках. То ли программа не хочет работать, то ли выкидывает еще какой-нибудь фокус. Вы принимаете решение закрыть программу. Для этого надо отправить сигнал. Существует целый ряд сигналов, которые способны закрыть процесс: в основном это INT, QUIT, TERM и KILL.

Среди них единственный сигнал, который срабатывает всегда, - KILL. Но он такой мощный, что не оставляет процессу шансов завершиться, не нарушив порядка.

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

  1. Введите символ конца файла (ЕОF); чаще всего это Ctrl+D на клавиатуре. На него реагируют многие программы, получающие данные стандартным способом.

  2. Отправьте сигнал INT: обычно это клавиши Сtrl+С

  3. Отправьте сигнал QUIT: клавиши Сtrl+C.

  4. Смените терминал (консоль), чтобы посредством ps получить список активных процессов. Если известно имя ошибочной или случайно запущенной программы, то команду ps можно нацелить непосредственно на нее. Для этого служит аргумент grep. В нашем случае источником проблемы явилась программа vi:

ps –u | grep vi

Типичный вывод выглядит так:

kai 681 1.1 4.5 177 324 v01 S 21:25 0:52 vi sys.tex

kai 782 0.0 3.3 148 240 v04 S 22:55 0:00 grep vi

В нашем примере запущены два процесса, в командной строке которых встречается vi. Второй - grep vi - не представляет интереса. Он уже давно завершен, так как речь здесь идет об одной из двух команд строки ps –u | grep vi . Первая команда выглядит как vi sys.tex. Пользователь запустил ее с именем kai. Чтобы прекратить выполнение этой программы, попробуйте по очереди:

kill 681

kill –9 681

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]