Отправляет email-рассылки с помощью сервиса Sendsay

Дефолтный обработчик сигнала SIG_DFL

Здравствуйте.

Где в исходниках Linux 2.6 находится SIG_DFL?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 29061; Возраст листа: 1229; Участников: 1398
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/616846

Ответить   "Denis Silin" Tue, 5 Dec 2006 08:40:59 +0300 (#616846)

 

Ответы:

В сообщении от 5 декабря 2006 08:40 Denis Silin написал(a):

Это - псевдоадрес, который обрабатывается специально и
означает - восстановить реакцию на сигнал по умолчанию.
Варианта тут два - либо процесс завершается, либо сигнал
игнорируется. Третьего варианта не бывает. Так что никакого
реального обработчика с ним не связано.

Ответить   "Sergey B. Khvatov" Tue, 5 Dec 2006 14:55:58 +0300 (#616977)

 

А где этот адрес обрабатывается, где находится функция, завершающая процесс,
и где эта функция вызывается?

Original Message From: "Sergey B. Khvatov" <xbat***@t*****.ru>
To: "comp.soft.linux.discuss (8508234)" <denis.sil***@s*****.ru>
Sent: Tuesday, December 05, 2006 2:55 PM

В сообщении от 5 декабря 2006 08:40 Denis Silin написал(a):

Это - псевдоадрес, который обрабатывается специально и
означает - восстановить реакцию на сигнал по умолчанию.
Варианта тут два - либо процесс завершается, либо сигнал
игнорируется. Третьего варианта не бывает. Так что никакого
реального обработчика с ним не связано.

Ответить   "Denis Silin" Tue, 5 Dec 2006 15:29:53 +0300 (#616994)

 

В сообщении от 5 декабря 2006 15:29 Denis Silin написал(a):

Всё обрабатывается в ядре, а до userspace (программы) вообще
ничего не доходит. Программа либо убивается, либо сигнал
вообще не видит.

Если вы хотите обработать сигнал - задайте на него нужную
вам реакцию с помощью signal/sigse/sigaction/что-ещё-есть

Ответить   "Sergey B. Khvatov" Tue, 5 Dec 2006 17:05:37 +0300 (#617010)

 

Так мне не надо в userspace. Мне надо изменить в ядре дефолтную обработку
сигнала, чтобы программа не убивалась.

В каком месте в исходниках ядра происходит вызов функции, убивающей процесс
при сигнале?

Original Message From: "Sergey B. Khvatov" <xbat***@t*****.ru>
To: "comp.soft.linux.discuss (8508234)" <denis.sil***@s*****.ru>
Sent: Tuesday, December 05, 2006 5:05 PM

В сообщении от 5 декабря 2006 15:29 Denis Silin написал(a):

Всё обрабатывается в ядре, а до userspace (программы) вообще
ничего не доходит. Программа либо убивается, либо сигнал
вообще не видит.

Если вы хотите обработать сигнал - задайте на него нужную
вам реакцию с помощью signal/sigse/sigaction/что-ещё-есть

Ответить   "Denis Silin" Wed, 6 Dec 2006 08:43:52 +0300 (#617299)

 

Здравствуйте Denis Silin
В сообщении от Wednesday 06 December 2006 08:43 Denis Silin
написал(a):

Это неправильная политика :)
Если вы добьётесь своего не будет убиваться не только ваша программа, но
и все остальные. Проще выбрать нужный сигнал правильно, или его
правильно обработать.

man 7 signal вам в помощь :)

А в каком месте - в обработке сигналов.

Ответить   Wed, 6 Dec 2006 09:31:18 +0300 (#617312)

 

Но всё таки кто-нибудь знает, где находится этот обработчик?

Original Message From: "Хихин Руслан" <hih***@n*****.ru>
To: "comp.soft.linux.discuss (8508234)" <denis.sil***@s*****.ru>
Sent: Wednesday, December 06, 2006 9:31 AM

Здравствуйте Denis Silin
В сообщении от Wednesday 06 December 2006 08:43 Denis Silin
написал(a):

Это неправильная политика :)
Если вы добьётесь своего не будет убиваться не только ваша программа, но
и все остальные. Проще выбрать нужный сигнал правильно, или его
правильно обработать.

man 7 signal вам в помощь :)

А в каком месте - в обработке сигналов.

Ответить   "Denis Silin" Wed, 6 Dec 2006 09:49:39 +0300 (#617321)

 

On Wed 06, Denis Silin wrote:

M. b. "/usr/local/src/linux-2.6.17-hardened-r1/fs/exec.c:1696":
int do_coredump(long signr, int exit_code, struct pt_regs * regs)

Best regards,
vjp7 <vj***@g*****.net>

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 29089; Возраст листа: 1230; Участников: 1402
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/617392

Ответить   vjp7 Wed, 6 Dec 2006 13:44:08 +0300 (#617392)

 

У меня задача, связанная с coredump.

Необходимо сделать возможность задержки coredump на некоторое время, пока
юзер не подключит устройство, на которое будет записан coredump.

При этом остальные задачи должны работать.

Для этого нужно не убивать процесс, для которого нужен coredump, в течение
некоторого времени.

Поэтому мне надо найти функцию в ядре, которая срабатывает, когда обработчик
сигнала - SIG_DFL, и убивает процесс.

Кто-нибудь знает, что это за функция?

Original Message From: "Хихин Руслан" <hih***@n*****.ru>
To: "comp.soft.linux.discuss (8508234)" <denis.sil***@s*****.ru>
Sent: Wednesday, December 06, 2006 9:31 AM

Здравствуйте Denis Silin
В сообщении от Wednesday 06 December 2006 08:43 Denis Silin
написал(a):

Это неправильная политика :)
Если вы добьётесь своего не будет убиваться не только ваша программа, но
и все остальные. Проще выбрать нужный сигнал правильно, или его
правильно обработать.

man 7 signal вам в помощь :)

А в каком месте - в обработке сигналов.

Ответить   "Denis Silin" Wed, 6 Dec 2006 09:59:27 +0300 (#617324)

 

Здравствуйте Denis Silin
В сообщении от Wednesday 06 December 2006 09:59 Denis Silin
написал(a):

Смотрите исходники ядра - kernel/signal.c (в районе 60-й строки :) ) и
далее.

Ответить   Wed, 6 Dec 2006 10:20:39 +0300 (#617330)