|  | @@ -1,6 +1,8 @@
 | 
	
		
			
				|  |  |  import logging
 | 
	
		
			
				|  |  |  import sys
 | 
	
		
			
				|  |  |  import re
 | 
	
		
			
				|  |  | +import signal
 | 
	
		
			
				|  |  | +import sys
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from inspect import getdoc
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -229,7 +231,13 @@ class TopLevelCommand(Command):
 | 
	
		
			
				|  |  |              try:
 | 
	
		
			
				|  |  |                  log_printer.run()
 | 
	
		
			
				|  |  |              finally:
 | 
	
		
			
				|  |  | -                self.project.kill(service_names=options['SERVICE'])
 | 
	
		
			
				|  |  | +                def handler(signal, frame):
 | 
	
		
			
				|  |  | +                    self.project.kill(service_names=options['SERVICE'])
 | 
	
		
			
				|  |  | +                    sys.exit(0)
 | 
	
		
			
				|  |  | +                signal.signal(signal.SIGINT, handler)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                print "Gracefully stopping... (press Ctrl+C again to force)"
 | 
	
		
			
				|  |  | +                self.project.stop(service_names=options['SERVICE'])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def _attach_to_container(self, container_id, interactive, logs=False, stream=True, raw=False):
 | 
	
		
			
				|  |  |          stdio = self.client.attach_socket(
 |