Настройка и работа в Linux




Исследуем процессы Часть 2


Статья является переводом текста Dru Lavigne, опубликованного по адресу: http://www.onlamp.com/pub/a/bsd/2000/11/22/FreeBSD_Basics.html.

В первой части статьи мы узнали что представляют из себя процессы, а так же как посмотреть список запущенных процессов на вашей FreeBSD. В этой части мы узнаем как процессы общаются между собой, как вы можете что-нибудь передать процессу и зачем вам это может понадобиться.

Ход общения процессов называется межпроцессным взаимодействием. Процессы не имеют права просто передавать что-нибудь кому-нибудь. В FreeBSD существует 31 предопределенное сообщение. Эти сообщения называются сигналами. Вы можете посмотреть список сигналов набрав: kill -l

HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

Каждый сигнал имеет номер, и в этом списке они перечислены в порядку номеров. Таким образом HUP=1, INT=2 и т.д. Процесс может посылать эти сигналы другим процессам. Пользователи могут тоже самое.

Для того, что бы понять, что означает каждый из этих сигналов наберите man 2 sigaction или man 3 signal. Следующая ниже таблица кратко описывает каждый из 31 сигналов, а также результаты их применения. Поскольку пользователи так же могут посылать любые из этих сигналов, рядом с наиболее часто используемыми сигналами я поставил звездочку.

Название сигнала

#

Действие по умолчанию

Описание

*HUP 1 уничтожить процесс оборвалась связь с терминалом
*INT 2 уничтожить процесс прерывание программы
*QUIT 3 создать дамп памяти выход из программы
ILL 4 создать дамп памяти запрещенная инструкция
TRAP 5 создать дамп памяти отладочное прерывание
ABRT 6 создать дамп памяти вызов функции abort
EMT 7 создать дамп памяти была выполнена эмулируемая инструкция
FPE 8 создать дамп памяти исключение при операциях с плавающей точкой
*KILL 9 уничтожить процесс убить программу
BUS 10 создать дамп памяти ошибка на шине
SEGV 11 создать дамп памяти нарушение сегментации
SYS 12 создать дамп памяти вызов несуществующей системной программы
PIPE 13 уничтожить процесс запись в канал при отсутствии чтения
ALRM 14 уничтожить процесс истек таймер реального времени
*TERM 15 уничтожить процесс программный сигнал на уничтожение процесса
URG 16 игнорирование сигнала неотложное условие
*STOP 17 остановить процесс останов (не может игнорироваться)
*TSTP 18 остановить процесс сигнал стоп с клавиатуры
CONT 19 игнорирование сигнала продолжить после останова
CHLD 20 игнорирование сигнала статус порожденного процесса изменился
TTIN 21 остановить процесс попытка фонового чтения
TTOU 22 остановить процесс попытка фоновой записи
IO 23 игнорирование сигнала ввод/вывод возможен
XCPU 24 уничтожить процесс исчерпан лимит процессорного времени
XFSZ 25 уничтожить процесс исчерпан лимит на размер файла
VTALRM 26 уничтожить процесс сигнал от виртуального таймера
PROF 27 уничтожить процесс сигнал от таймера профайлера
WINCH 28 игнорирование сигнала изменение размеров окна
INFO 29 игнорирование сигнала запрос статуса с клавиатуры
USR1 30 уничтожить процесс Определенный пользователем сигнал 1
USR2 31 уничтожить процесс Определенный пользователем сигнал 2
<


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