Russian Qt Forum

Qt => Общие вопросы => Тема начата: yarick от Август 13, 2013, 19:56



Название: SIGTERM не работает!
Отправлено: yarick от Август 13, 2013, 19:56
Хотелось бы, чтобы при выполнении команды kill myprogramm.exe - программа сохранялась и закрывалась.
Сделал так:
Код:
#include <signal.h>
//...
void quitHandler(int num)
{
    qDebug() << "quit";
}
//...
signal(SIGTERM, quitHandler);
Однако при отправке сигнала kill под windows 7 не работает код. И приложение не закрывается, и сообщение не выводится.
Вообще библиотека signal.h кроссплатформенна? Средства Qt для этой цели сколько не искал - не нашёл. Кто как решает проблему?


Название: Re: SIGTERM не работает!
Отправлено: kibsoft от Август 13, 2013, 20:04
Для винды смотри в сторону SetUnhandledExceptionFilter..для остальных ОС не знаю.


Название: Re: SIGTERM не работает!
Отправлено: maint от Август 14, 2013, 02:38
вообще SIGTERM и SIGKILL разные сигналы


Название: Re: SIGTERM не работает!
Отправлено: alex312 от Август 14, 2013, 10:14
http://msdn.microsoft.com/en-us/library/windows/desktop/ms685049%28v=vs.85%29.aspx


Название: Re: SIGTERM не работает!
Отправлено: Alex Custov от Август 14, 2013, 19:25
Хотелось бы, чтобы при выполнении команды kill myprogramm.exe - программа сохранялась и закрывалась.

А програма kill посылает именно SIGTERM?


Название: Re: SIGTERM не работает!
Отправлено: voral от Август 15, 2013, 00:56
А програма kill посылает именно SIGTERM?
Да. Если не указано явно параметром.


Название: Re: SIGTERM не работает!
Отправлено: Alex Custov от Август 15, 2013, 03:05
А програма kill посылает именно SIGTERM?
Да. Если не указано явно параметром.

Это Unix kill, здесь же почти наверняка kill из pstools.


Название: Re: SIGTERM не работает!
Отправлено: lesav от Август 15, 2013, 20:58
А есть еще
taskkill.exe   /f  /im  myprogramm.exe