Завершение процесса

В нормальной ситуации процесс завершается одним из двух способов (см. лаб. работу 3):

- системным вызовом exit;

- возвратом из функции main.

Процесс также может завершиться в ответ на сигнал. Сигналы - это механизм для взаимодействия процессов и управления ими.

Сигнал можно послать двумя способами:

- командой оболочки $kill [-s номер_сигнала] pid

- из программы функцией kill (pid, номер_сигнала);

Если включить в программу <signal.h>, то вместо номеров сигналов можно использовать их имена. (Определения сигналов содержатся в файле usr/include/sys/signum.h, на который есть ссылка из signal.h.)

Для завершения процесса следует использовать сигналы SIGTERM или SIGKILL. Сигнал SIGTERM может быть проигнорирован процессом, в то время как сигнал SIGKILL всегда вызывает немедленное завершение процесса. Более подробную информацию о сигналах можно получить по команде

$man 7 signal

Задание 1. Попытайтесь завершить bash при помощи команды kill, послав сигнал SIGTERM, затем - SIGKILL. Поясните результаты и запишите Ваши команды. Определите и выпишите номера этих двух сигналов.