понедельник, 21 сентября 2015 г.

Пара слов об IPC

IPC:

    сигналы;
    очереди;
    каналы;
    безопасные подпроцессы;
    сокеты;
    семафоры.

Perl использует возможности юникс для реализации IPC: сигналы, именованные каналы, каналы, сокеты, SysV IPC вызовы.

%SIG - содержит имена или ссылки на обработчики сигналов. Эти обработчики вызываются с аргументом, содержащим имя события.

$SIG{INT} = sub {print "\n\n\nУпал\n"; exit 3;}; 

print "бесполезный текст\n" while 1;

бесполезный текст
бесполезный текст
бесполезный текст
бесполезный текст
^C


Упал

Вместо имени и ссылки обработчика можно написать: "IGNORE", "DEFAULT", для игнорирования сигнала или обработки по умолчанию.

Сигнал "CHLD" (CLD) при установки в "IGNORE" запрещает создавать зомби процессы, когда родительский неудачно выполнит wait() на своих дочерних процессах (например, дочерние автоматически завершатся). Вызов wait() возвратит -1 при CHLD в IGNORE.

Модули: Config - здесь можно получить имена доступных сигналов.

Комментариев нет:

Отправить комментарий