(trunk) add SIGKILL handling to daemon, gtk clients. This is revision of r9387 for #2119

This commit is contained in:
Charles Kerr 2009-10-24 16:18:40 +00:00
parent 55c59fa478
commit 39ba9bbbba
2 changed files with 24 additions and 19 deletions

View File

@ -102,25 +102,24 @@ showUsage( void )
}
static void
got_sigint( int sig UNUSED )
gotsig( int sig )
{
closing = TRUE;
}
switch( sig )
{
case SIGHUP:
{
tr_benc settings;
const char * configDir = tr_sessionGetConfigDir( mySession );
tr_inf( "Reloading settings from \"%s\"", configDir );
tr_bencInitDict( &settings, 0 );
tr_sessionLoadSettings( &settings, configDir, MY_NAME );
tr_sessionSet( mySession, &settings );
tr_bencFree( &settings );
}
static void
got_sighup( int sig UNUSED )
{
tr_benc settings;
const char * configDir = tr_sessionGetConfigDir( mySession );
/* reload the settings */
tr_inf( "Reloading settings from \"%s\"", configDir );
tr_bencInitDict( &settings, 0 );
tr_sessionLoadSettings( &settings, configDir, MY_NAME );
tr_sessionSet( mySession, &settings );
/* cleanup */
tr_bencFree( &settings );
default:
closing = TRUE;
}
}
#if defined(WIN32)
@ -281,9 +280,10 @@ main( int argc, char ** argv )
const char * configDir = NULL;
dtr_watchdir * watchdir = NULL;
signal( SIGINT, got_sigint );
signal( SIGINT, gotsig );
signal( SIGKILL, gotsig );
#ifndef WIN32
signal( SIGHUP, got_sighup );
signal( SIGHUP, gotsig );
#endif
/* load settings from defaults + config file */

View File

@ -272,9 +272,13 @@ signal_handler( int sig )
else switch( sig )
{
case SIGINT:
case SIGKILL:
g_message( _( "Got signal %d; trying to shut down cleanly. Do it again if it gets stuck." ), sig );
doAction( "quit", sighandler_cbdata );
break;
default:
g_message( "unhandled signal" );
}
}
@ -282,6 +286,7 @@ static void
setupsighandlers( void )
{
signal( SIGINT, signal_handler );
signal( SIGKILL, signal_handler );
}
static tr_rpc_callback_status