Как С программа может понять что её собираются убить (kill)?
Чтобы могла закрыть сокеты перед смертью.
Словить sigkill
Я подозреваю, что так же как и человек - ей сначала надо приговор зачитать wink А от выстрела в затылок ничто не спасет...
Я не помню точно какая программа так делает, вроде бы pidgin: при завершении её командой kill, в консоль прежде чем завершиться выдаёт: "убито".
Я пишу серверное приложение и очень напряжно каждый раз несколько минут ждать закрытия сокетов системой после того, как убиваю его руками (например, из-за зависания или просто чтобы перекомпилить и запустить новую версию).
словить sigkill никак... этот сигнал не доставляется процессу... он говорит системе что процесс надо прибить без всяких "НО" с его стороны... убиваете процесс с помощью [console]kill -s 9 <proc>[/console]?
словить sigkill никак... этот сигнал не доставляется процессу... он говорит системе что процесс надо прибить без всяких "НО" с его стороны... убиваете процесс с помощью [console]kill -s 9 <proc>[/console]?
Вроде нужно так:
kill -s KILL <proc>
или
kill -9 <proc>
Я может глупость скажу, т.к. в вопросе разбираюсь весьма поверхностно, а нельзя-ли вместо KILL посылать TERM? Его-то вроде можно перехватить?
Я может глупость скажу, т.к. в вопросе разбираюсь весьма поверхностно, а нельзя-ли вместо KILL посылать TERM? Его-то вроде можно перехватить?
так я по этому и спрашиваю у ТС каким образом он прибивает процесс... т.к. команда kill по умолчанию шлет SIGTERM...
Я убиваю его командой:
[console]Killall test[/console]
Понял. Тогда другой вопрос: как поймать SIGTERM? ))
ну тут бы вам почитать литературку по сигналам в linux....попросите у гугуля.... ну или для начала..
[console]man 2 signal[/console]