Сигнал (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:

Sylvester the Cat, dikenal sebagai Sylvester Pussycat Sylvester J. Pussycat, Sr. atau Sylvester (the Cat) adalah sebuah tokoh kartun dalam serial Looney Tunes dan Merrie Melodies produksi dari Warner Bros.. Sylvester memakai nama yang disadur dari felis silvestris. Tentang Sylvester Sylvester menggambarkan seekor seekor kucing berwarna hitam dan putih milik Granny. Sylvester selalu dijaga Granny. Sasaran yang diincar Sylvester ialah Tweety, Speedy Gonzales dan Hippety Hopper. Sylvester kadang...

 

List of 50 Cent awards 50 Cent in Bangkok, Thailand, February 26, 2006 Award Menang Nominasi American Music Awards 3 4 ASCAP Awards 11 0 AVN Awards 2 4 BET Awards 3 7 BET Hip Hop Awards 1 2 Billboard Music Awards 13 18 Billboard R&B/Hip-Hop Awards 7 16 Grammy Awards 1 13 MOBO Awards 3 0 MTV Video Music Awards 2 8 The Source Awards 3 0 Vibe Awards 5 8 World Music Awards 6 0 Totals Awards won 73 Nominations 118 Halaman ini memuat daftar penghargaan dan nominasi yang diterima oleh 50 Cent. ...

 

Синагога дель Трансито в Толедо История иудаизма в Испании начинается в эпоху Римской империи. Наибольшего расцвета еврейская община Испании достигла в Средние века — и при владычестве мусульман, и при правлении христианских королей до изгнания в 1492 году. В настоя...

2011 video gameZenonia 3Developer(s)GamevilPublisher(s)GamevilSeriesZenoniaPlatform(s)iOS, AndroidReleaseiOSApril 28, 2011AndroidJuly 1, 2011Genre(s)Action RPGZenonia 3: The Midgard Story (Korean: 제노니아 3) is an action role-playing game created, developed, and published by Gamevil for Android and iOS. It was released on the App Store on April 28, 2011,[1] on Google Play on July 1, 2011,[2] and on the Amazon Appstore on April 1, 2012. On the App Store, Zenonia 3 is distr...

 

Town in Tver Oblast, Russia Town in Tver Oblast, RussiaToropets ТоропецTown[1]View of Toropets Coat of armsLocation of Toropets ToropetsLocation of ToropetsShow map of RussiaToropetsToropets (Tver Oblast)Show map of Tver OblastCoordinates: 56°30′N 31°39′E / 56.500°N 31.650°E / 56.500; 31.650CountryRussiaFederal subjectTver Oblast[1]Administrative districtToropetsky District[2]Urban settlementToropets[2]First mentioned1074E...

 

Unfinished Portrait Ilustrasi edisi Inggris dan AS pertamaPengarangMary Westmacott (pseudonim Agatha Christie)Perancang sampulHookway CowlesNegaraBritania RayaBahasaInggrisGenreTragediPenerbitCollinsTanggal terbitMaret 1934Jenis mediaCetak (sampul keras & sampul kertas)Halaman320 halamanDidahului olehPembunuhan di Orient Express Diikuti olehMisteri Listerdale Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan...

Voce principale: Associazione Calcio Siena. AC SienaStagione 1982-1983Sport calcio Squadra Siena Allenatore Guido Mammi All. in seconda Primo Luigi Galasi Presidente Ennio Regoli Serie C113º nel girone B Coppa Italia Serie CFase eliminatoria a gironi Maggiori presenzeCampionato: Gridelli (34) Miglior marcatoreCampionato: Coppola (10) StadioDel Rastrello 1981-1982 1983-1984 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti l'Associazione Calcio Sie...

 

How nations operate the orbital research complex This article needs to be updated. Please help update this article to reflect recent events or newly available information. (July 2022)   Primary contributing nations  Formerly contracted nations The politics of the International Space Station have been affected by superpower rivalries, international treaties, and funding arrangements. The Cold War was an early factor, overtaken in recent years by the United States' distrust ...

 

Dewan Perwakilan Rakyat Daerah Provinsi Sumatera SelatanPeriode 2019-2024JenisJenisUnikameral Jangka waktu5 tahunSejarahSesi baru dimulai24 September 2019PimpinanKetuaHj. R. A. Anita Noeringhati, S.H., M.H. (Golkar) sejak 23 Oktober 2019 Wakil Ketua IH. M. Giri Ramanda Nazaputra Kiemas, S.E., M.M. (PDI-P) sejak 23 Oktober 2019 Wakil Ketua IIKartika Sandra Desi, S.H. (Gerindra) sejak 23 Oktober 2019 Wakil Ketua IIIH. Muchendi Mahzareki, S.E. (Demokrat) sejak 23 Oktober 2019 Kom...

Greek tyrant of the Ionian city of Miletus (died 497/6 BC) For other classical persons of the same name, see Aristagoras (given name). AristagorasἈρισταγόραςCoinage of Miletus at the time of Aristagoras. 5th century BC.Died497/496 BCMyrcinusCause of deathMilitary combat against the ThraciansOther namesὁ Μιλήσιος (the Milesian)OccupationGovernor of the city-state of MiletusEmployerPersian EmpireKnown forInstigation of the Ionian revoltTitleTyrant (Tyrannos)...

 

Indonesia padaOlimpiade Musim Panas 2012Kode IOCINAKONKomite Olimpiade IndonesiaSitus webnocindonesia.idPenampilan pada Olimpiade Musim Panas 2012 di LondonPeserta22 dalam 8 cabang olahragaPembawa benderaI Gede Siman Sudartawa[1]MedaliPeringkat ke-60 0 2 1 Total 3 Penampilan pada Olimpiade Musim Panas (ringkasan)195219561960196419681972197619801984198819921996200020042008201220162020 Indonesia bertanding dalam Olimpiade London 2012 yang berlangsung di London, Britania Raya pada t...

 

Paul Blart: Mall Cop 2Poster resmiSutradaraAndy FickmanProduser Todd Garner Kevin James Adam Sandler Ditulis oleh Nick Bakay Kevin James Pemeran Kevin James Raini Rodriguez Neal McDonough Shirley Knight Penata musikRupert Gregson-WilliamsSinematograferDean SemlerPenyuntingScott HillPerusahaanproduksiHappy Madison ProductionsDistributorColumbia PicturesTanggal rilis 17 April 2015 (2015-04-17) Durasi94 Menit[1]NegaraAmerika SerikatBahasaInggrisAnggaran$40 Juta[2]Penda...

Grand Prix Kanada 1996 Lomba ke-8 dari 16 dalam Formula Satu musim 1996 Detail perlombaanTanggal 16 June 1996Nama resmi XXXIV Grand Prix Molson du CanadaLokasi Circuit Gilles Villeneuve, Montreal, Quebec, CanadaSirkuit Street circuitPanjang sirkuit 4.421 km (2.747 mi)Jarak tempuh 69 putaran, 305.049 km (189.549 mi)Cuaca Mostly sunny and warm with temperatures approaching 26 °C (79 °F)[1]Posisi polePembalap Damon Hill Williams-RenaultWaktu 1:21.059Putaran tercepatPembalap J...

 

Japanese community in New York City Ethnic group Japanese in New York Cityニューヨーク市における日本人移民The Japan Society in ManhattanTotal population37,279 (2000)[1]LanguagesEnglish, Japanese, and OkinawanReligionBuddhism, Christianity, Shintoism, Atheism Part of a series onRace and ethnicity in New York City Ethnicities African Americans Albanians Arabs Bangladeshis Belarusians Brazilians Caribbeans Chinese Fuzhounese Taiwanese Colombians Cubans Dominicans Dutch Ec...

 

Croatian historian and politician Milan ŠufflayBorn(1879-11-08)8 November 1879Lepoglava, Croatia-Slavonia, Austria-Hungary(now Croatia)Died19 February 1931(1931-02-19) (aged 51)Zagreb, Kingdom of Yugoslavia(now Croatia)NationalityCroatAlma materUniversity of Zagreb Milan Šufflay (8 November 1879 – 19 February 1931) was a Croatian historian and politician. He was one of the founders of Albanology and the author of the first Croatian science fiction novel. As a Croatian nationalis...

Events at the2005 Asian AthleticsChampionshipsTrack events100 mmenwomen200 mmenwomen400 mmenwomen800 mmenwomen1500 mmenwomen5000 mmenwomen10,000 mmenwomen100 m hurdleswomen110 m hurdlesmen400 m hurdlesmenwomen3000 msteeplechasemen4 × 100 m relaymenwomen4 × 400 m relaymenwomenRoad events20 km walkmenwomenField eventsHigh jumpmenwomenPole vaultmenwomenLong jumpmenwomenTriple jumpmenwomenShot putmenwomenDiscus throwmenwomenHammer throwmenwomenJavelin throwmenwomenCombined eventsHeptathlonwome...

 

この記事には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。 適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2022年1月) モンゴルのゲル ゲルの内部 現代的なゲル ゲル(モンゴル語: гэр、ᠭᠡᠷ 転写:ger、満洲語:ᠪᠣᠣ 転写:boo)は、主にモンゴル高原に住む遊牧民が�...

 

Anything with which mathematical reasoning is possible This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (June 2009) (Learn how and when to remove this message) A tesseract or four-dimensional hypercube is an example of mathematical object A mathematical object is an abstract concept arising in mathematics. In the usual language of mathematics, an object is anyt...

Phân hiệu Trường Đại học Tài nguyên và Môi trường Hà Nội tại Thanh HóaĐịa chỉSố 04 - Trần Phú, phường Ba Đình, thị xã Bỉm Sơn, Thanh Hóa,  Việt NamThông tinTên cũTrường Cao đẳng Tài nguyên và Môi trường Miền TrungLoạiCông lậpThành lập1968 (56 năm trước) (1968)2018 (6 năm trước) (2018) - Sáp nhập trở thành phân hiệu đại họcSáng lậpBộ Tài nguyên và Môi trư�...

 

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (أغسطس 2019) كوبا ليبرتادوريس 2007 تفاصيل الموسم كوبا ليبرتادوريس  النسخة 48  التاريخ بدا...