Системный вызов kill() и команда kill()
Из всех перечисленных ранее в разделе "Аппаратные прерывания (interrupt), исключения (exception), программные прерывания (trap, software interrupt). Их обработка" источников сигнала пользователю доступны только два – команда kill и посылка сигнала процессу с помощью системного вызова kill(). Команда kill обычно используется в следующей форме:
kill [-номер] pid
Здесь pid – это идентификатор процесса, которому посылается сигнал, а номер – номер сигнала, который посылается процессу. Послать сигнал (если у вас нет полномочий суперпользователя) можно только процессу, у которого эффективный идентификатор пользователя совпадает с идентификатором пользователя, посылающего сигнал. Если параметр –номер отсутствует, то посылается сигнал SIGTERM, обычно имеющий номер 15, и реакция на него по умолчанию – завершить работу процесса, который получил сигнал.
Команда kill Синтаксис команды kill [-signal] [--] pid kill -l Описание команды Команда kill предназначена для передачи сигнала одному или нескольким специфицированным процессам в рамках полномочий пользователя. Параметр pid определяет процесс или процессы, которым будут доставляться сигналы. Он может быть задан одним из следующих четырех способов:
Параметр -signal определяет тип сигнала, который должен быть доставлен, и может задаваться в числовой или символьной форме, например -9 или -SIGKILL. Если этот параметр опущен, процессам по умолчанию посылается сигнал SIGTERM. Послать сигнал (не имея полномочий суперпользователя) можно только процессу, у которого эффективный идентификатор пользователя совпадает с идентификатором пользователя, посылающего сигнал. Опция -l используется для получения списка сигналов, существующих в системе в символьной и числовой формах. Во многих операционных системах предусмотрены еще и дополнительные опции для команды kill. |
При использовании системного вызова kill() послать сигнал ( не имея полномочий суперпользователя) можно только процессу или процессам, у которых эффективный идентификатор пользователя совпадает с эффективным идентификатором пользователя процесса, посылающего сигнал.
Системный вызов kill() Прототип системного вызова #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int signal); Описание системного вызова Системный вызов kill() предназначен для передачи сигнала одному или нескольким специфицированным процессам в рамках полномочий пользователя. Послать сигнал (не имея полномочий суперпользователя) можно только процессу, у которого эффективный идентификатор пользователя совпадает с эффективным идентификатором пользователя для процесса, посылающего сигнал. Аргумент pid описывает, кому посылается сигнал, а аргумент sig – какой сигнал посылается. Этот системный вызов умеет делать много разных вещей, в зависимости от значения аргументов:
Возвращаемое значение Системный вызов возвращает 0 при нормальном завершении и –1 при ошибке. |