LINUX.ORG.RU

кто шлет сигнал 0 ?


0

1

привет.

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

лог:

info : server.cpp:(48):handle_accept: parent 25114 started
info : server.cpp:(33):handle_accept: child 25117 started
info : main.cpp:(32):signal_handler: process 25117, signal 'Unknown signal 0'(0) received
info : server.cpp:(83):handle_read: child 25117, read: "123"
info : main.cpp:(32):signal_handler: process 25114, signal 'Child exited'(17) received
info : server.cpp:(48):handle_accept: parent 25114 started
info : server.cpp:(33):handle_accept: child 25178 started
info : main.cpp:(32):signal_handler: process 25178, signal 'Unknown signal 0'(0) received
info : server.cpp:(48):handle_accept: parent 25114 started
info : server.cpp:(33):handle_accept: child 25180 started
info : main.cpp:(32):signal_handler: process 25180, signal 'Unknown signal 0'(0) received
info : main.cpp:(32):signal_handler: process 25114, signal 'Child exited'(17) received
info : main.cpp:(32):signal_handler: process 25114, signal 'Child exited'(17) received
т.е. во второй строке, в функции handle_accept()(прием нового соединения) видно, что создался потомок с pid=25117. строкой ниже, в обработчике этого потомка, получаем сигнал 0.

вопрос, в общем-то, не относится к программированию(как кто-то уже подумал). дело в том, что инфы о сигнале 0 нагуглилось маловато, и какая-то она(т.е. инфа) не информативная.

цитата из мана:

If signal is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID. 
вопрос в том, кто посылает в моем случае этот сигнал? при использовании 'kill -0 PID' - понятно.

благодарен.

★★★

Последнее исправление: niXman (всего исправлений: 2)

Как именно ты получаешь сигналы? При использовании sigaction обработчику передаётся указатель на структуру siginfo_t, в которой есть PID отправителя.

Deleted
()
Ответ на: комментарий от niXman

С помощью sigaction ты можешь поставить свой обработчик для получения PID'а и из него же «вручную» вызывать старый обработчик, который был поставлен asio.

Deleted
()
Ответ на: комментарий от niXman

что это за сигнал такой

На этот вопрос вроде ты сам ответил цитатой из мана.

кто его шлет

Я предложил способ как это узнать.

и зачем/почему

Думаю сначала нужно узнать «кто», и тогда будет понятно зачем и почему 8).

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.