Основы многозадачности в Linux



бет15/15
Дата16.11.2022
өлшемі472,04 Kb.
#158456
1   ...   7   8   9   10   11   12   13   14   15
Байланысты:
5-6 лаб раб (1)

$ kill 10493
$ ps
PID TTY TIME CMD
9481 pts/1 00:00:00 bash
10495 pts/1 00:00:00 ps
[1]+ Terminated yes >/dev/null
Рассмотрим еще один пример (листинг 10.18), в котором родительский процесс обрабатывает статус завершения потомка на предмет получения сигнала.
Листинг 10.18. Пример killedchild.c



Итак, если запустить эту программу и подождать 30 с, то на экран будет выведено примерно следующее сообщение:
Process with PID=10205 has exited with code=0
Но если в течение 30 с узнать PID процесса sleep и "убить" его командой kill, то результат будет совсем другой:


$ ./killedchild &
[1] 10597
$ ps
PID TTY TIME CMD
9481 pts/1 00:00:00 bash
10597 pts/1 00:00:00 killedchild
10598 pts/1 00:00:00 sleep
10599 pts/1 00:00:00 ps
$ kill 10598
Process with PID=10598 has exited with signal.
[1]+ Done ./killedchild

Системный вызов wait() имеет много интересных особенностей


Список литературы: Иванов Н. Н. И20 Программирование в Linux. Самоучитель. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург





Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   15




©engime.org 2023
әкімшілігінің қараңыз

    Басты бет