Skip to content

Commit d2c9777

Browse files
Luc1etejegrova
authored andcommitted
Update index.md
Opraveny překlepy a interpunkce.
1 parent ed6a1f2 commit d2c9777

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

lessons/notes/signals/index.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ Vlastně, jak si ukážeme, na signál zareagovat *musí*.
77
Signály jsou docela minimalistické: obsahují jen jedno malé číslo,
88
druh signálu.
99
Větší „zprávy“ se musí procesům posílat jiným způsobem (třeba souborem,
10-
rourou nebo přes síť), ale i v těchto případech se dá signálem upozornit
10+
rourou nebo přes síť), ale i v těchto případech se dá signálem upozornit,
1111
že si proces má nějakou větší zprávu přečíst.
1212
Typickým příkladem je ukončení probíhajícího procesu pomocí `Ctrl+C`, kdy
1313
pošleme procesu signál žádající o jeho ukončení.
1414

1515

1616
## Přijetí signálu
1717

18-
Když procesu pošleš signál, tak ten proces *přeruší* to co zrovna dělá
18+
Když procesu pošleš signál, tak ten proces *přeruší* to, co zrovna dělá,
1919
a signál zpracuje.
20-
Co přesně se stane závisí na druhu signálu; možnosti jsou tyto:
20+
Co přesně se stane, závisí na druhu signálu; možnosti jsou tyto:
2121

2222
* Ukončení (angl. *terminate*): proces se ukončí.
2323
* Ignorování (angl. *ignore*): nic se nestane.
2424
* Ukončení s chybou (angl. *core dump*): proces se ukončí. Pokud je na to
2525
systém nastaven, stav paměti ukončeného procesu se zapíše do speciálního
26-
souboru, aby bylo jednodušší zjistit co se v momentě ukončení zrovna dělo.
26+
souboru, aby bylo jednodušší zjistit, co se v momentě ukončení zrovna dělo.
2727
* Pozastavení (angl. *stop*): Proces se pozastaví.
2828
V shellu tohle dělá zkratka <kbd>Ctrl</kbd>+<kbd>Z</kbd>
2929
* Obnovení (angl. *continue*): Pozastavený proces se znovu spustí.
@@ -62,7 +62,7 @@ Přepínačem pojmenovaným podle signálu můžeš vybrat, který signál pošl
6262

6363
Zkus si to!
6464

65-
jedom terminálu zadej:
65+
jednom terminálu zadej:
6666

6767
```console
6868
$ sleep 1000
@@ -71,12 +71,12 @@ $ sleep 1000
7171
A ve druhém třeba:
7272

7373
```console
74-
$ ls -a | grep sleep
74+
$ ps -a | grep sleep
7575
12345678 pts/3 00:00:00 sleep
7676
$ kill -SIGABRT 12345678
7777
```
7878

79-
Signál `SIGABRT` proces dostane když se snaží provést neplatnou operaci –
79+
Signál `SIGABRT` proces dostane, když se snaží provést neplatnou operaci –
8080
instrukci, které procesor nerozumí.
8181
To je většinou hodně závažná chyba.
8282
Kdybys při instalaci systému zadal{{a}} „automatické hlášení chyb“,
@@ -87,13 +87,13 @@ pomocí `abrt-cli list` podívat, že chyba byla zaznamenána.
8787

8888
Podobně si můžeš vyzkoušet jiné signály, třeba:
8989

90-
* `SIGINT` se posílá když zmáčkneš <kbd>Ctrl</kbd>+<kbd>C</kbd>.
91-
* `SIGTERM` posílá `kill` když mu nezadáš jiný signál.
92-
* `SIGKILL` (9) se posílá když zmáčkneš <kbd>Ctrl</kbd>+<kbd>\\</kbd>;
90+
* `SIGINT` se posílá, když zmáčkneš <kbd>Ctrl</kbd>+<kbd>C</kbd>.
91+
* `SIGTERM` posílá `kill`, když mu nezadáš jiný signál.
92+
* `SIGKILL` (9) se posílá, když zmáčkneš <kbd>Ctrl</kbd>+<kbd>\\</kbd>;
9393
proces se „natvrdo“ ukončí.
9494
U tohoto signálu si procesy nemůžou nastavit jiné chování:
9595
proces se vždy ukončí.
96-
* `SIGSTOP` se posílá když zmáčkneš <kbd>Ctrl</kbd>+<kbd>z</kbd>;
96+
* `SIGSTOP` se posílá, když zmáčkneš <kbd>Ctrl</kbd>+<kbd>z</kbd>;
9797
proces se pozastaví.
9898
Podobně jako u `SIGKILL` si i u tohoto signálu procesy nemůžou nastavit
9999
jiné chování.
@@ -102,12 +102,12 @@ Podobně si můžeš vyzkoušet jiné signály, třeba:
102102

103103
## Signály v Pythonu
104104

105-
To, že se přijetí signálu přeruší cokoli co proces zrovna dělá,
105+
To, že se přijetím signálu přeruší cokoli, co proces zrovna dělá,
106106
se dá přirovnat k výjimkám v Pythonu.
107107
Koneckonců, výjimka `KeyboardInterrupt` je jen reakce Pythonu na signál
108-
`SIGINT`: vzniká tak, že so Python na `SIGINT` připravil: řekl operačnímu
109-
systému že pro `SIGINT` nemá ukončit proces,
110-
ale má se zavolat funkce která způsobí výjimku.
108+
`SIGINT`: vzniká tak, že se Python na `SIGINT` připravil: řekl operačnímu
109+
systému, že pro `SIGINT` nemá ukončit proces,
110+
ale má se zavolat funkce, která způsobí výjimku.
111111

112112
Program v Pythonu můžeš „připravit“ na výjimky pomocí `try` a `except`.
113113
Na to, aby se program připravil na přijetí signálu, slouží funkce
@@ -135,4 +135,4 @@ Tento program reaguje na `SIGUSR1` a `SIGUSR2`, tedy např. `kill -SIGUSR1 $pid`
135135

136136
Můžeš si ověřit, že pro `SIGKILL` a `SIGSTOP` funkce `signal.signal` selže.
137137
A taky že předefinování `SIGINT` přenastaví chování
138-
<kbd>Ctrl</kbd>+<kbd>C</kbd> – právě pro takové situace se hodí `SIGKILL`.
138+
<kbd>Ctrl</kbd>+<kbd>C</kbd> – právě pro takové situace se hodí `SIGKILL`.

0 commit comments

Comments
 (0)