Explorar o código

Stop "fig up" containers gracefully

With double ctrl-c force.
Ben Firshman %!s(int64=11) %!d(string=hai) anos
pai
achega
9b289b6f3b
Modificáronse 1 ficheiros con 9 adicións e 1 borrados
  1. 9 1
      fig/cli/main.py

+ 9 - 1
fig/cli/main.py

@@ -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(