mirror of
https://github.com/transmission/transmission
synced 2025-03-09 13:50:00 +00:00
(trunk) add SIGKILL handling to daemon, gtk clients. This is revision of r9387 for #2119
This commit is contained in:
parent
55c59fa478
commit
39ba9bbbba
2 changed files with 24 additions and 19 deletions
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue