mirror of
				https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
				synced 2025-11-03 21:43:32 +00:00 
			
		
		
		
	Treat SIGTERM just like SIGINT in our programs
When somebody kills the process, it's best to handle the signal and to use the opportunity for some cleanup. We always did this in the NITB on SIGINT, but never on SIGTERM. Let's change it. Change-Id: Iea6804325a6575ceab5edfd28dd20249462f143b
This commit is contained in:
		
				
					committed by
					
						
						Neels Hofmeyr
					
				
			
			
				
	
			
			
			
						parent
						
							4d254dd490
						
					
				
				
					commit
					3d24d2947e
				
			@@ -98,6 +98,7 @@ static void signal_handler(int signal)
 | 
			
		||||
 | 
			
		||||
	switch (signal) {
 | 
			
		||||
	case SIGINT:
 | 
			
		||||
	case SIGTERM:
 | 
			
		||||
		osmo_signal_dispatch(SS_L_GLOBAL, S_L_GLOBAL_SHUTDOWN, NULL);
 | 
			
		||||
		sleep(1);
 | 
			
		||||
		exit(0);
 | 
			
		||||
@@ -232,6 +233,7 @@ int main(int argc, char **argv)
 | 
			
		||||
	msgb_talloc_ctx_init(tall_bsc_ctx, 0);
 | 
			
		||||
 | 
			
		||||
	signal(SIGINT, &signal_handler);
 | 
			
		||||
	signal(SIGTERM, &signal_handler);
 | 
			
		||||
	signal(SIGABRT, &signal_handler);
 | 
			
		||||
	signal(SIGUSR1, &signal_handler);
 | 
			
		||||
	signal(SIGUSR2, &signal_handler);
 | 
			
		||||
 
 | 
			
		||||
@@ -96,6 +96,7 @@ static void signal_handler(int signal)
 | 
			
		||||
 | 
			
		||||
	switch (signal) {
 | 
			
		||||
	case SIGINT:
 | 
			
		||||
	case SIGTERM:
 | 
			
		||||
		osmo_signal_dispatch(SS_L_GLOBAL, S_L_GLOBAL_SHUTDOWN, NULL);
 | 
			
		||||
		sleep(1);
 | 
			
		||||
		exit(0);
 | 
			
		||||
@@ -302,6 +303,7 @@ int main(int argc, char **argv)
 | 
			
		||||
	msgb_talloc_ctx_init(osmo_gtphub_ctx, 0);
 | 
			
		||||
 | 
			
		||||
	signal(SIGINT, &signal_handler);
 | 
			
		||||
	signal(SIGTERM, &signal_handler);
 | 
			
		||||
	signal(SIGABRT, &signal_handler);
 | 
			
		||||
	signal(SIGUSR1, &signal_handler);
 | 
			
		||||
	signal(SIGUSR2, &signal_handler);
 | 
			
		||||
 
 | 
			
		||||
@@ -145,6 +145,7 @@ static void signal_handler(int signal)
 | 
			
		||||
 | 
			
		||||
	switch (signal) {
 | 
			
		||||
	case SIGINT:
 | 
			
		||||
	case SIGTERM:
 | 
			
		||||
		osmo_signal_dispatch(SS_L_GLOBAL, S_L_GLOBAL_SHUTDOWN, NULL);
 | 
			
		||||
		sleep(1);
 | 
			
		||||
		exit(0);
 | 
			
		||||
@@ -332,6 +333,7 @@ int main(int argc, char **argv)
 | 
			
		||||
	msgb_talloc_ctx_init(tall_bsc_ctx, 0);
 | 
			
		||||
 | 
			
		||||
	signal(SIGINT, &signal_handler);
 | 
			
		||||
	signal(SIGTERM, &signal_handler);
 | 
			
		||||
	signal(SIGABRT, &signal_handler);
 | 
			
		||||
	signal(SIGUSR1, &signal_handler);
 | 
			
		||||
	signal(SIGUSR2, &signal_handler);
 | 
			
		||||
 
 | 
			
		||||
@@ -162,6 +162,7 @@ static void signal_handler(int signal)
 | 
			
		||||
 | 
			
		||||
	switch (signal) {
 | 
			
		||||
	case SIGINT:
 | 
			
		||||
	case SIGTERM:
 | 
			
		||||
		bsc_shutdown_net(bsc_gsmnet);
 | 
			
		||||
		osmo_signal_dispatch(SS_L_GLOBAL, S_L_GLOBAL_SHUTDOWN, NULL);
 | 
			
		||||
		sleep(3);
 | 
			
		||||
@@ -280,6 +281,7 @@ int main(int argc, char **argv)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	signal(SIGINT, &signal_handler);
 | 
			
		||||
	signal(SIGTERM, &signal_handler);
 | 
			
		||||
	signal(SIGABRT, &signal_handler);
 | 
			
		||||
	signal(SIGUSR1, &signal_handler);
 | 
			
		||||
	signal(SIGUSR2, &signal_handler);
 | 
			
		||||
 
 | 
			
		||||
@@ -266,6 +266,7 @@ static void signal_handler(int signal)
 | 
			
		||||
 | 
			
		||||
	switch (signal) {
 | 
			
		||||
	case SIGINT:
 | 
			
		||||
	case SIGTERM:
 | 
			
		||||
		msc_network_shutdown(msc_network);
 | 
			
		||||
		osmo_signal_dispatch(SS_L_GLOBAL, S_L_GLOBAL_SHUTDOWN, NULL);
 | 
			
		||||
		sleep(3);
 | 
			
		||||
@@ -472,6 +473,7 @@ TODO: we probably want some of the _net_ ctrl commands from bsc_base_ctrl_cmds_i
 | 
			
		||||
		osmo_timer_schedule(&db_sync_timer, DB_SYNC_INTERVAL);
 | 
			
		||||
 | 
			
		||||
	signal(SIGINT, &signal_handler);
 | 
			
		||||
	signal(SIGTERM, &signal_handler);
 | 
			
		||||
	signal(SIGABRT, &signal_handler);
 | 
			
		||||
	signal(SIGUSR1, &signal_handler);
 | 
			
		||||
	signal(SIGUSR2, &signal_handler);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user