|  | @@ -6,6 +6,16 @@ from tracim.lib.daemons import DaemonsManager
 | 
	
		
			
			| 6 | 6 |  
 | 
	
		
			
			| 7 | 7 |  
 | 
	
		
			
			| 8 | 8 |  class InterruptManager(object):
 | 
	
		
			
			|  | 9 | +    """
 | 
	
		
			
			|  | 10 | +    Manager interruption of tracim components.
 | 
	
		
			
			|  | 11 | +
 | 
	
		
			
			|  | 12 | +    Stop all tracim daemons, then:
 | 
	
		
			
			|  | 13 | +
 | 
	
		
			
			|  | 14 | +    With a specific production server like uWSGI, we should use master
 | 
	
		
			
			|  | 15 | +    FIFO system to exit properly the program:
 | 
	
		
			
			|  | 16 | +    https://github.com/unbit/uwsgi/issues/849. But to be generic, we resend the
 | 
	
		
			
			|  | 17 | +    signal after intercept it.
 | 
	
		
			
			|  | 18 | +    """
 | 
	
		
			
			| 9 | 19 |      def __init__(
 | 
	
		
			
			| 10 | 20 |              self,
 | 
	
		
			
			| 11 | 21 |              tracim_process_pid: int,
 | 
	
	
		
			
			|  | @@ -41,6 +51,4 @@ class InterruptManager(object):
 | 
	
		
			
			| 41 | 51 |          """
 | 
	
		
			
			| 42 | 52 |          self._remove_signal_handlers()
 | 
	
		
			
			| 43 | 53 |          self.daemons_manager.stop_all()
 | 
	
		
			
			| 44 |  | -        # Web server is managed by end of stack like uwsgi, apache2.
 | 
	
		
			
			| 45 |  | -        # So to ask it's termination, we have to use standard kills signals
 | 
	
		
			
			| 46 | 54 |          os.kill(self.tracim_process_pid, signum)
 |