X36UNX. UNIX - signály. jejich význam a použití. Martin Plicka -

Podobné dokumenty
Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6

Linux Teorie operačních systémů a realita

Příkaz find, práce s procesy a úlohami, plánování úloh

Úvod do Operačních Systémů

OS Procesy a vlákna. Tomáš Hudec. Tomas.Hudec@upce.cz.

Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna.

UŽIVATEL, SKUPINA, PROCES

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Střední odborná škola a Střední odborné učiliště, Hořovice

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Úvod. unx-predn_01-uvod.odt :13:43 1

Administrace Unixu a sítí

Procesy a vlákna Mgr. Josef Horálek

C2110 Operační systém UNIX a základy programování

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Ukázka zkouškové písemka OSY

Management procesu I Mgr. Josef Horálek

Základy IOS, Přepínače: Spanning Tree

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Úvod do Linuxu. SŠSI Tábor 1

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Seminární práce do kurzu ISA. Petr Mikušek 10. listopadu Abstrakt

Úvod, jednoduché příkazy

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Operační systémy. Tomáš Vojnar IOS 2014/2015. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Služba ve Windows. Služba (service) je program

Unix je víceuživatelský a víceúlohový OS

2.Moderní koncepce OS, architektura jádra: monolitický systém, vrstvený systém, virtuální stroj, mikrojádro.

Popis programu EnicomD

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Západočeská univerzita v Plzni. Správce virtuálních strojů

IT ESS II. 1. Operating Systém Fundamentals

Operační systémy. Cvičení 1: Seznámení s prostředím

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

PRACUJEME S SHELLEM Ať žije BASH.

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

2 -drátový systém videovrátných. DPC-D244-K Uživatelský manuál * 0 #

Speciální soubory. Editace příkazové řádky. $ fg mp3blaster $./skript.sh. [2]+ Stopped./skript.sh $ bg [2]+./skript.sh & $ fg 2./skript.

Sekvenční a podmíněné provádění

ZOS OPAKOVÁNÍ. L. Pešička

Linux-příkazový řádek

Obsah přednášky. Unix úvod. Literatura. Úvod do Unixu. Použitelnost Unixu. Úvod do Unixu

Metody připojování periferií

Instalace a první spuštění Programu Job Abacus Pro

Nastroje na zpracovani textu:

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Operační systémy. Přednáška 2: Procesy a vlákna

Změnit čas poslední modifikace souboru je možno službou jádra getrusage() stat() link() time() *truncate()

Instalace a konfigurace web serveru. WA1 Martin Klíma

Quido - Telnet. Popis konfigurace modulů Quido protokolem Telnet. 3. srpna 2007 w w w. p a p o u c h. c o m

CON TATORE TIMER TACHIMETRO TERMIN ALE MODBUS TCT Manuale User Manual

udev a kamarádi... Středisko UN*Xových technologií

Nainstaloval jsem a jak dál? Michal Turek

Semestrální projekt do předmětu SPS

Paralelní výpočty na clusteru KMD

Střední odborná škola a Střední odborné učiliště, Hořovice

Procesy a vlákna - synchronizace

Tomáš Borland Valenta

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

setup() { I = 0; } loop() { I = I + 1; }

Petr Holášek / 1 of 21

Komunikační driver Sauter EY2400. Reliance. Komunikační driver SAUTER EY2400 verze 2.4.3

PSK3-9. Základy skriptování. Hlavička

Aplikace. Hlásič SMS

Úvod do Operačních Systémů

Program Computer Setup

I n f o r m a t i k a a v ý p o č e t n í t e c h n i k a. Operační systém

Architektury počítačů a procesorů

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví Nakladatelství a vydavatelství.

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Programovací software ConfigTool. Základní obsluha a postup připojení k zařízení přes USB a GPRS. Verze 2.00

Reliance. Komunikační driver Johnson Controls verze 1.5.4

Architektura systému GNU/Linux. Bohdan Milar

Možnosti reakce na události na rozhraních (Interface Events)

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

Vláknové programování část I

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

STRUčNÝ NÁVOD PRO KONFIGURACI FREKVENčNÍCH MĚNIčŮ

GGset Návod k instalaci a používání v1.1

Rozdělení operačních systémů

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

NÁVOD K OBSLUZE konfigurační SW CS-484

GGset. Program pro nastavovnání MiniGate A FxO-FxS. Návod k obsluze a instalaci V 1.0

Další nástroje pro testování

GGset Návod k instalaci a používání v3.0

ABC Linux běží z CD české prostředí tištěná příručka obsah portálu Mutt Jak začít? Jan Fuchs

SPÍNACÍ HODINY. Nastavení hodin a předvolby. Obr. 1

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Nástroj Setup. Uživatelská příručka

PRT3 tiskový modulu manuál pro EVO ústředny

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

Transkript:

X36UNX UNIX - signály jejich význam a použití Martin Plicka - plickm1@fel.cvut.cz

Co jsou signály? Softwarová přerušení zaslaná procesu jiným procesem, terminal driverem, jádrem Druhy signálů jsou očíslovány (od 0 výše) a pojmenovány. Seznam např. kill -l Synchronní původcem je ten samý proces (nepovolený zápis do paměti, nepovolená instrukce, dělení nulou...) Asynchronní původcem je jiný proces, terminálový driver (uživatel z klávesnice, ukončení spojení, shutdown...)

Výchozí: Reakce na signály Terminate (Exit) - přerušení procesu Core - přerušení a vytvoření souboru core s výpisem použité paměti Ignore - ignorování signálu Stop - zastavení procesu Vlastní: Odchycení a vlastní obsluha (ignorování, vlastní rutina...), viz např. man signal(3c), sigaction(2) Signály SIGKILL, SIGSTOP nelze odchytit, ignorovat

Příklady signálů man signal(3head) Name Value Default Event SIGHUP 1 Exit Hangup (see termio(7i)) SIGINT 2 Exit Interrupt (see termio(7i)) SIGQUIT 3 Core Quit (see termio(7i)) SIGILL 4 Core Illegal Instruction SIGTRAP 5 Core Trace or Breakpoint Trap SIGABRT 6 Core Abort SIGEMT 7 Core Emulation Trap SIGFPE 8 Core Arithmetic Exception SIGKILL 9 Exit Killed SIGBUS 10 Core Bus Error SIGSEGV 11 Core Segmentation Fault SIGSYS 12 Core Bad System Call SIGPIPE 13 Exit Broken Pipe SIGALRM 14 Exit Alarm Clock SIGTERM 15 Exit Terminated SIGUSR1 16 Exit User Signal 1... atd... ( viz man -s 3HEAD signal ) + signál SIGEXIT(0) - je odeslán procesem sám sobě při ukončení

Příklad - synchronní signály SIGFPE(8): např. dělení nulou [plickm1@sunray1:test]./fpe Arithmetic Exception [plickm1@sunray1:test] fpe.c: int a; int main (){ a = 5/0; //!!! } SIGSEGV(11): nepovolený zápis do paměti [plickm1@sunray1:test]./segv Segmentation Fault [plickm1@sunray1:test] segv.c: int * a; int main (){ a = (int *) 0; a [1] = 5; //!!! }

15 - SIGTERM Standardní signál pro předčasné přerušení procesu Proces jej může odchytit a vykonat vlastní rutinu, ignorovat Použit při volání příkazů kill, killall apod. bez explicitního výběru signálu 9 - SIGKILL Standardní signál pro předčasné násilné přerušení procesu. Proces nemá šanci jej odchytit, ignorovat

SIGTERM & SIGKILL Používají se i např. na konci skriptů pro vypnutí systému, zde soubor Linuxu: /etc/rc0.d/s90halt... # Now kill them all killall5-15 sleep 1 echo -n "${BLUE}Sent all processes the TERM signal...${normal}" mysleep "$BLUE" killall5-9 sleep 1 echo -n "${RED}Sent all processes the KILL signal...${normal}" mysleep "$RED"... killall5 - zasílá v Linuxu signály všem běžícím procesům vyjma sebe a rodiče (killall v Linuxu a Solarisu se liší!!!)

Historie: 1 SIGHUP Připojení terminálu bylo realizováno pomocí modemu nebo seriové linky. Při rozpojení (HangUP = zavěšení ) bylo nutno informovat programy Dnes: Při zavření terminálu se odešle SIGHUP běžícímu shellu, ten jej zachytává a ukončuje své potomky Proces jej při svém ukončení rozesílá potomkům Alternativně lze u démonů (např. Apache) signálem SIGHUP vynutit znovunačtení konfigurace

Příkaz NOHUP Nucené ukončení procesu při ukončení shellu (odhlášení) lze obejít použitím příkazu nohup. nohup nas_prikaz & Proces poběží i po zavření shellu Případný výstup programu je směrován do souboru nohup.out

2 SIGINT Je posílán terminálovým driverem po stisku nadefinovaných kláves (stand. <CTRL+C>) Standardní akce je ukončení 3 SIGQUIT Je posílán terminálovým driverem po stisku nadefinovaných kláves (stand. <CTRL+\>) Standardní akce je ukončení a výpis paměti do souboru (Core)

Příkaz STTY Slouží ke konfuguraci terminálu, mj. k určení kláves pro signály SIGINT a SIGQUIT [plickm1@sunray1:test]# nastaví CTRL+B pro SIGINT [plickm1@sunray1:test]stty intr ^B [plickm1@sunray1:test]# vypíše aktuální nastavení [plickm1@sunray1:test]stty -a speed 9600 baud; rows = 24; columns = 80; ypixels = 0; xpixels = 0; csdata? eucw 1:0:0:0, scrw 1:0:0:0 intr = ^b; quit = ^\; erase = ^?; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;...atd...

Příkaz KILL Odešle signál procesu nebo úloze Syntaxe (Bash built-in): kill [-s sigspec -n signum -sigspec] [pid job]... nebo kill -l [sigspec exit_status] Příklady: kill 123 kill %1 kill -KILL 123 - odešle SIGTERM(15) procesu s PID=123 - odešle SIGTERM(15) úloze s ID=1 - odešle SIGKILL procesu s PID=123 kill -n 9 123 456 - odešle SIGKILL procesům s PID=123 a 456 kill -l kill l HUP - vypíše tabulku existujícíh signálů - vypíše číslo signálu SIGHUP kill -l 3 - vypíše jméno signálu s č. 3 Pozn.: Existuje více implementací příkazu kill.

Příkaz TRAP Nastaví uživatelskou odezvu na signál v shellu Syntaxe (Bash built-in): trap [-lp] [arg] [sigspec...] Nastaví spuštění příkazu arg při obdržení zadaného signálu. Příklady: trap -l - vypíše seznam existujících signálů trap - vypíše seznam nastavených odezev trap "echo Int" INT - nastaví odezvu pro SIGINT (vypíše Int ) trap "" INT - nastaví ignorování SIGINT trap - INT - vrátí výchozí odezvu pro SIGINT trap -p INT SEGV - vypíše seznam nastavení pro dané signály

ZDROJE? Manuálové stránky: signal(3head) bash... a další WWW: http://www.wikipedia.org hesla SIGHUP a jiné signály