Сигнал (Unix)

Сигнал в операционных системах семейства Unix — асинхронное уведомление процесса о каком-либо событии, один из основных способов взаимодействия между процессами. Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчик, то выполняется обработчик по умолчанию.

Названия сигналов «SIG…» являются числовыми константами (макроопределениями Си) со значениями, определяемыми в заголовочном файле signal.h. Числовые значения сигналов могут меняться от системы к системе, хотя основная их часть имеет в разных системах одни и те же значения. Утилита kill позволяет задавать сигнал как числом, так и символьным обозначением.

Спецификация сигналов включена в стандарты POSIX.

Посылка сигналов

Сигналы посылаются:

  • из терминала, нажатием специальных клавиш или комбинаций (например, нажатие Ctrl-C генерирует SIGINT, Ctrl-\ SIGQUIT, а Ctrl-Z SIGTSTP);
  • ядром системы:
    • при возникновении аппаратных исключений (недопустимых инструкций, нарушениях при обращении в память, системных сбоях и т. п.);
    • ошибочных системных вызовах;
    • для информирования о событиях ввода-вывода;
  • одним процессом другому (или самому себе), с помощью системного вызова kill(), в том числе:

Сигналы не могут быть посланы завершившемуся процессу, находящемуся в состоянии «зомби».

Обработка сигналов

Обработчик по умолчанию для большинства сигналов завершает выполнение процесса. Для альтернативной обработки всех сигналов, за исключением SIGKILL и SIGSTOP, процесс может назначить свой обработчик или игнорировать их возникновение модификацией своей сигнальной маски. Единственное исключение — процесс с pid 1 (init), который имеет право игнорировать или обрабатывать любые сигналы, включая KILL и STOP.

Безопасность

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

Классификация сигналов

POSIX определяет 28 сигналов, которые можно классифицировать следующим образом:

Название Портируемый код Действие по умолчанию Описание Тип
SIGABRT 6 Завершение с дампом памяти Сигнал, посылаемый функцией abort() Управление
SIGALRM 14 Завершение Сигнал истечения времени, заданного alarm() Уведомление
SIGBUS Завершение с дампом памяти Неправильное обращение в физическую память Исключение
SIGCHLD Игнорируется Дочерний процесс завершен или остановлен Уведомление
SIGCONT Продолжить выполнение Продолжить выполнение ранее остановленного процесса Управление
SIGFPE 8 Завершение с дампом памяти Ошибочная арифметическая операция Исключение
SIGHUP 1 Завершение Закрытие терминала Уведомление
SIGILL 4 Завершение с дампом памяти Недопустимая инструкция процессора Исключение
SIGINT 2 Завершение Сигнал прерывания (Ctrl-C) с терминала Управление
SIGKILL 9 Завершение Безусловное завершение Управление
SIGPIPE 13 Завершение Запись в разорванное соединение (пайп, сокет) Уведомление
SIGQUIT 3 Завершение с дампом памяти Сигнал «Quit» с терминала (Ctrl-\) Управление
SIGSEGV 11 Завершение с дампом памяти Нарушение при обращении в память Исключение
SIGSTOP Остановка процесса Остановка выполнения процесса Управление
SIGTERM 15 Завершение Сигнал завершения (сигнал по умолчанию для утилиты kill) Управление
SIGTSTP Остановка процесса Сигнал остановки с терминала (Ctrl-Z). Управление
SIGTTIN Остановка процесса Попытка чтения с терминала фоновым процессом Управление
SIGTTOU Остановка процесса Попытка записи на терминал фоновым процессом Управление
SIGUSR1 Завершение Пользовательский сигнал № 1 Пользовательский
SIGUSR2 Завершение Пользовательский сигнал № 2 Пользовательский
SIGPOLL Завершение Событие, отслеживаемое poll() Уведомление
SIGPROF Завершение Истечение таймера профилирования Отладка
SIGSYS Завершение с дампом памяти Неправильный системный вызов Исключение
SIGTRAP 5 Завершение с дампом памяти Ловушка трассировки или брейкпоинт Отладка
SIGURG Игнорируется На сокете получены срочные данные Уведомление
SIGVTALRM Завершение Истечение «виртуального таймера» Уведомление
SIGXCPU Завершение с дампом памяти Процесс превысил лимит процессорного времени Исключение
SIGXFSZ Завершение с дампом памяти Процесс превысил допустимый размер файла Исключение

Также есть сигналы, не определённые в POSIX, но присутствующие на некоторых операционных системах.

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

SA_SIGINFO

Обычно обработчик сигнала получает только один аргумент — номер сигнала (это позволяет использовать одну функцию-обработчик для нескольких сигналов). Если при задании обработчика сигнала (функцией sigaction()) указать опцию SA_SIGINFO, то в обработчик будут переданы ещё два аргумента:

  1. указатель на структуру siginfo_t, включающую:
    • битовую маску дополнительных «кодов сигнала», определяющих причину его возникновения;
    • идентификатор процесса (PID), пославшего сигнал;
    • эффективный идентификатор пользователя (UID), от имени которого выполняется процесс (например, утилита kill), пославший сигнал;
    • адрес инструкции, в которой возникло исключение;
    • и т. п.
  2. указатель на «машинный контекст» на момент возникновения сигнала (со «стеком сигнала» — дополнительными данными, которые помещаются в стек при вызове некоторых сигналов-исключений).

Большинство дополнительных кодов специфичны для каждого сигнала. Коды, общие для всех сигналов:

Код Описание
SI_USER Сигнал послан функцией kill() (или утилитой kill)
SI_QUEUE Сигнал послан функцией sigqueue()
SI_TIMER Сигнал послан по истечении времени, установленного функцией timer_settime()
SI_ASYNCIO Сигнал послан по завершении запроса на «асинхронный ввод-вывод»
SI_MESGQ Сигнал послан по появлению сообщения в пустой «очереди сообщений Unix»

Ссылки

Read other articles:

Die Jakobikirche um 1910 Die evangelische St.-Jacobi-Kirche (auch Neustädter Kirche) war ein Kirchengebäude in Nordhausen im Landkreis Nordhausen in Thüringen. Inhaltsverzeichnis 1 Geschichte 2 Ausstattung 3 Orgel 4 Persönlichkeiten 5 Literatur 6 Weblinks 7 Einzelnachweise Geschichte Nordhausen um 1640 (Merian). St. Jacobi mit Ziffer 3 im Turm Standort der ehemaligen St.-Jacobi-Kirche Blick vom Primariusgraben auf das diakonische Pflegeheim St. Jakob Haus Bereits im 13. Jahrhundert gab es...

En este artículo sobre informática se detectaron varios problemas. Por favor, edítalo y/o discute los problemas en la discusión para mejorarlo: No tiene una redacción neutral. Por favor, modifica los párrafos o secciones que muestran un punto de vista parcial en concordancia con lo esperado en una enciclopedia. Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia. Carece de fuentes o referencias que aparezcan en una fuente acreditada. Este aviso fue puesto el ...

Korinthische Oorlog Datum 395–387 v.Chr. Locatie Griekenland Resultaat OnbeslistKoningsvrede gedicteerd door Perzië Territorialeveranderingen Ionië wordt afgestaan aan Perzië Boeotische Bond wordt ontbondenUnie van Argos en Korinthe wordt ontbonden Strijdende partijen Sparta Peloponnesische Bond Athene Argos Korinthe Thebe Perzische Rijk Andere bondgenoten Leiders en commandanten Agesilaüs en anderen Verschillende leiders Korinthische Oorlog Haliartus · Nemea · Cnidus · Coronea · Le...

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (ديسمبر 2020) فلورين لازار معلومات شخصية الميلاد 15 يناير 1980 (43 سنة)  كرايوفا  الطول 1.84 م (6 قدم 1⁄2 بوصة) مركز اللعب مدافع الجنسية رومانيا  مسيرة الشباب سنوا

Сен-Венсан-де-БарреSaint-Vincent-de-Barrès Країна  Франція Регіон Овернь-Рона-Альпи  Департамент Ардеш  Округ Прива Кантон Рошмор Код INSEE 07302 Поштові індекси 07210 Координати 44°39′42″ пн. ш. 4°42′34″ сх. д.H G O Висота 153 - 560 м.н.р.м. Площа 19,1 км² Населення 833 (01-2020[1]) Густо...

This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Mallikarjuna Reddy – news · newspapers · books · scholar · JSTOR (January 2020) (Learn how and when to remove this template message) Mallikarjuna ...

Basketball and wrestling venue Gallagher-Iba ArenaThe Rowdiest Arena in the CountryThe Madison Square Garden of The PlainsMr. Iba's House of HorrorsFormer names4-H Clubs and Student Activities Building (1938–c.1939)Gallagher Hall (1939–1987)Location1046 West Hall of Fame AvenueStillwater, OK 74078Coordinates36°07′33″N 97°3′54″W / 36.12583°N 97.06500°W / 36.12583; -97.06500OwnerOklahoma State UniversityOperatorOklahoma State UniversityCapacity13,611 (200...

У Вікіпедії є статті про інші значення цього терміна: Стоєнешть. село СтоєнештьStoenești Країна  Румунія Повіт  Келераш Комуна Моделу Код SIRUTA 92621 Поштові індекси 917182 Телефонний код +40 242 (Romtelecom, TR)+40 342 (інші оператори) Координати 44°16′07″ пн. ш. 27°21′44″ сх. д.H G O Вис...

Philippine state-owned utility enterprise National Transmission CorporationPambansang Korporasyon sa TransmisyonTRANSCOCorporate headquarters of TransCoAgency overviewFormedJune 26, 2001; 22 years ago (2001-06-26) (agency's creation)March 1, 2003; 20 years ago (2003-03-01) (power grid operations, maintenance, and ownership)[a]HeadquartersPower Center, Quezon Avenue corner Senator Miriam P. Defensor-Santiago (BIR Road), Diliman, Quezon City, Metro Ma...

Municipality in the Mexican state of Coahuila Municipality in Coahuila, MexicoMonclovaMunicipalityMunicipality of Monclova in CoahuilaMonclovaLocation in MexicoCoordinates: 26°54′37″N 101°25′20″W / 26.91028°N 101.42222°W / 26.91028; -101.42222Country MexicoStateCoahuilaMunicipal seatMonclovaArea • Total1,480 km2 (570 sq mi)Population (2005) • Total200,160 Monclova is one of the 38 municipalities of Coahuila, ...

Hip hop disc jockey discography DJ Khaled discographyKhaled in 2018Studio albums13Music videos33Singles45Featured singles12 The discography of American disc jockey DJ Khaled consists of thirteen studio albums which contain 54 singles (including 11 as a featured artist); his videography consists of at least 58 music videos (including 6 as a featured artist). Khaled's value proposition is his extensive network of artists of whom he enlists to perform on studio recordings. While first accumulati...

AngolaBiệt danhPalancas NegrasHiệp hộiLiên đoàn bóng đá AngolaLiên đoàn châu lụcCAF (châu Phi)Huấn luyện viên trưởngPedro GonçalvesĐội trưởngDjalma CamposThi đấu nhiều nhấtFlávio (91)Ghi bàn nhiều nhấtAkwá (38)Sân nhàSân vận động 11 tháng 11Mã FIFAANG Áo màu chính Áo màu phụ Hạng FIFAHiện tại 116 2 (20 tháng 7 năm 2023)[1]Cao nhất45 (7.2000)Thấp nhất148 (2.2017)Hạng EloHiện tại 101 10 (...

Hill fort in Pune district, Maharashtra, India Not to be confused with Raigad Fort. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Rajgad Fort – news · newspapers · books · scholar · JSTOR (November 2021) (Learn how and when to remove this template message) Rajgad FortPart of on MaharashtraPune District, Ma...

Peta pembagian administratif tingkat pertama Kepulauan Solomon Pembagian administratif Kepulauan Solomon terdiri atas 9 provinsi dan 1 ibu kota nasional, Honiara, pada tingkat pertama. lbsPembagian administratif OseaniaNegara berdaulat Australia Federasi Mikronesia Fiji Kepulauan Marshall Kepulauan Solomon Kiribati Nauru Palau Papua Nugini Samoa Selandia Baru Timor Leste1 Tonga Tuvalu Vanuatu Dependensi danwilayah lain Kepulauan Cocos (Keeling) Kepulauan Cook Guam Hawaii Kaledonia Baru Kepula...

Virtus Segafredo ArenaSegafredo Arena in May 2022LocationViale della Fiera,40128, Bologna[1]Coordinates44°30′39.16″N 11°21′58.12″E / 44.5108778°N 11.3661444°E / 44.5108778; 11.3661444OwnerBologna FiereVirtus BolognaCapacityBasketball: • 8,970 (2019–2020) • 9,700 (2020–2021) • 9,980 (2021–present)SurfaceParquetConstructionBuilt2019Opened10 November 2019TenantsVirtus Bologna (2019–present)Website...

Prime Minister of Japan from 1972 to 1974 This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Kakuei Tanaka – news · newspapers · books · scholar · JSTOR (May 2008) (Learn how and when to remove this template message) Kakuei Tanaka田中 角栄Official portrait, 1972Prime Minister of JapanIn office7 July 1972...

Corporate division This article is about the branding used by the BBC. For the magazine of this name, see BBC Music Magazine. This article needs to be updated. Please help update this article to reflect recent events or newly available information. (December 2020) BBC MusicIndustryMass mediaFounded2014HeadquartersBroadcasting House, London, United KingdomArea servedUnited KingdomKey peopleLorna Clarke (Director of Music)ServicesRadio and TV broadcasting, online services, event organisationPar...

Altar gereja Santa Cecilia in Trastevere di Roma, tahun 1700 Ritus Romawi atau Ritus Roma merupakan istilah ritus liturgis dari Gereja Roma. Istilah Ritus Latin biasanya bukan diartikan sebagai suatu ritus liturgis melainkan sebagai Gereja Partikular dalam Gereja Katolik yang kadang-kadang disebut pula sebagai Patriarkat Barat, yang di dalamnya terdapat ritus-ritus liturgis selain Ritus Roma yang masih digunakan sampai sekarang. Sebagaimana ritus-ritus liturgis lainnya, Ritus Roma telah berke...

Atsushi Ehara (江原 淳史)PekerjaanAktorTahun aktif1996–2004 Atsushi Ehara (江原 淳史code: ja is deprecated , Ehara Atsushi, lahir 14 April 1973) adalah seorang aktor asal Jepang. Dia berkarier di dunia film sejak tahun 1996 hingga 2004, dan dia dikenal dengan peran-perannya dalam serial tokusatsu, drama dan film: sebagai Kouichirou Endou / MegaBlack dalam serial Super Sentai Denji Sentai Megaranger. Filmografi Drama televisi Hachi-Gatsu no Love Song (YTV / NTV, 1996) Denji Sen...

نيو ويستمينيستر     الإحداثيات 49°12′25″N 122°54′40″W / 49.2069°N 122.911°W / 49.2069; -122.911  [1] تاريخ التأسيس 1865  تقسيم إداري  البلد كندا[2][3]  عاصمة لـ مستعمرة كولومبيا البريطانية (1858-1866)  خصائص جغرافية  المساحة 15.63 كيلومتر مربع  ارتفاع 60 متر  ...