Основы операционных систем. Практикум



         

Системный вызов kill() и команда kill()


Из всех перечисленных ранее в разделе "Аппаратные прерывания (interrupt), исключения (exception), программные прерывания (trap, software interrupt). Их обработка" источников сигнала пользователю доступны только два – команда kill и посылка сигнала процессу с помощью системного вызова kill(). Команда kill обычно используется в следующей форме:

kill [-номер] pid

Здесь pid – это идентификатор процесса, которому посылается сигнал, а номер – номер сигнала, который посылается процессу. Послать сигнал (если у вас нет полномочий суперпользователя) можно только процессу, у которого эффективный идентификатор пользователя совпадает с идентификатором пользователя, посылающего сигнал. Если параметр –номер отсутствует, то посылается сигнал SIGTERM, обычно имеющий номер 15, и реакция на него по умолчанию – завершить работу процесса, который получил сигнал.

Команда kill

Синтаксис команды

kill [-signal] [--] pid kill -l

Описание команды

Команда kill предназначена для передачи сигнала одному или нескольким специфицированным процессам в рамках полномочий пользователя.

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

  • Число n > 0 – определяет идентификатор процесса, которому будет доставлен сигнал.
  • Число 0 – сигнал будет доставлен всем процессам текущей группы для данного управляющего терминала.
  • Число -1 с предваряющей опцией -- – сигнал будет доставлен (если позволяют полномочия) всем процессам с идентификаторами, большими 1.
  • Число n < 0, где n не равно -1, с предваряющей опцией -- – сигнал будет доставлен всем процессам из группы процессов, идентификатор которой равен -n.

Параметр -signal определяет тип сигнала, который должен быть доставлен, и может задаваться в числовой или символьной форме, например -9 или -SIGKILL. Если этот параметр опущен, процессам по умолчанию посылается сигнал SIGTERM.

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

Опция -l используется для получения списка сигналов, существующих в системе в символьной и числовой формах.

Во многих операционных системах предусмотрены еще и дополнительные опции для команды kill.

<


Содержание  Назад  Вперед