LINUX.ORG.RU

Какие сигналы должно обрабатывать уважающее себя приложение?


0

0

man 7 signal читал. :)

А вопрос вот в чем: хочу, чтобы когда кто-нибудь пытается завершить мое приложение при помощи сигнала, оно не падало, а аккуратно завершало свою работу. Насколько я понимаю, если пользователь захочет корректно завершить приложение, то он пришлет мне SIGINT или SIGQUIT, но вот что делать когда он завершает работу системы? Как в данном случае система оповещает приложения о том, что необходимо завершиться?


> Как в данном случае система оповещает приложения о том, что необходимо завершиться?

SIGTERM, потом SIGKILL

d_a ★★★★★
()

Нафиг что-то обрабатывать. Просто зарегистрируй функции которые подчищают ресурсы через atexit().

Absurd ★★★
()
Ответ на: комментарий от Absurd

Нафиг что-то обрабатывать. Просто зарегистрируй функции которые подчищают ресурсы через atexit().

Из мана:

NOTES
       Functions registered using atexit() (and on_exit(3)) are not called if a process terminates abnormally because of the delivery of a signal.

Deleted
()

SIGHUP, SIGINT, SIGQUIT, SIGTERM. Остальные сигналы, если нужно. Не нужно пытаться обработать SIGKILL и SIGSTOP, это только замусоривает код.

>но вот что делать когда он завершает работу системы?

Там обыно приходит SIGTERM, но демоны обычно завершают работу одельной командой, которая запускается из скриптов завершения работы. Например, "gpm -k".

mky ★★★★★
()
Ответ на: комментарий от mky

> Там обыно приходит SIGTERM, но демоны обычно завершают работу одельной командой, которая запускается из скриптов завершения работы. Например, "gpm -k".

Скорее иногда, чем обычно. Обычно из скриптов как раз им отправляется тот же SIGTERM.

const86 ★★★★★
()
Ответ на: комментарий от mky

> Не нужно пытаться обработать SIGKILL и SIGSTOP

Тем более что они еще и не перехватываются :-)

no-dashi ★★★★★
()

SIGXCPU для любителей cgi и хостинга :)

true_admin ★★★★★
()

Спасибо всем за ответы.

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