Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)
| ... | ... |
@@ -13,6 +13,7 @@ import ( |
| 13 | 13 |
"github.com/dotcloud/docker/engine" |
| 14 | 14 |
"github.com/dotcloud/docker/nat" |
| 15 | 15 |
flag "github.com/dotcloud/docker/pkg/mflag" |
| 16 |
+ "github.com/dotcloud/docker/pkg/signal" |
|
| 16 | 17 |
"github.com/dotcloud/docker/pkg/term" |
| 17 | 18 |
"github.com/dotcloud/docker/registry" |
| 18 | 19 |
"github.com/dotcloud/docker/runconfig" |
| ... | ... |
@@ -24,7 +25,7 @@ import ( |
| 24 | 24 |
"net/http/httputil" |
| 25 | 25 |
"net/url" |
| 26 | 26 |
"os" |
| 27 |
- "os/signal" |
|
| 27 |
+ gosignal "os/signal" |
|
| 28 | 28 |
"path" |
| 29 | 29 |
"reflect" |
| 30 | 30 |
"regexp" |
| ... | ... |
@@ -533,7 +534,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
|
| 533 | 533 |
|
| 534 | 534 |
func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
|
| 535 | 535 |
sigc := make(chan os.Signal, 1) |
| 536 |
- utils.CatchAll(sigc) |
|
| 536 |
+ signal.CatchAll(sigc) |
|
| 537 | 537 |
go func() {
|
| 538 | 538 |
for s := range sigc {
|
| 539 | 539 |
if s == syscall.SIGCHLD {
|
| ... | ... |
@@ -581,7 +582,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
|
| 581 | 581 |
|
| 582 | 582 |
if !container.Config.Tty {
|
| 583 | 583 |
sigc := cli.forwardAllSignals(cmd.Arg(0)) |
| 584 |
- defer utils.StopCatch(sigc) |
|
| 584 |
+ defer signal.StopCatch(sigc) |
|
| 585 | 585 |
} |
| 586 | 586 |
|
| 587 | 587 |
var in io.ReadCloser |
| ... | ... |
@@ -1614,7 +1615,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
|
| 1614 | 1614 |
|
| 1615 | 1615 |
if *proxy && !container.Config.Tty {
|
| 1616 | 1616 |
sigc := cli.forwardAllSignals(cmd.Arg(0)) |
| 1617 |
- defer utils.StopCatch(sigc) |
|
| 1617 |
+ defer signal.StopCatch(sigc) |
|
| 1618 | 1618 |
} |
| 1619 | 1619 |
|
| 1620 | 1620 |
if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), container.Config.Tty, in, cli.out, cli.err, nil); err != nil {
|
| ... | ... |
@@ -1818,7 +1819,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
|
| 1818 | 1818 |
|
| 1819 | 1819 |
if sigProxy {
|
| 1820 | 1820 |
sigc := cli.forwardAllSignals(runResult.Get("Id"))
|
| 1821 |
- defer utils.StopCatch(sigc) |
|
| 1821 |
+ defer signal.StopCatch(sigc) |
|
| 1822 | 1822 |
} |
| 1823 | 1823 |
|
| 1824 | 1824 |
var ( |
| ... | ... |
@@ -2320,7 +2321,7 @@ func (cli *DockerCli) monitorTtySize(id string) error {
|
| 2320 | 2320 |
cli.resizeTty(id) |
| 2321 | 2321 |
|
| 2322 | 2322 |
sigchan := make(chan os.Signal, 1) |
| 2323 |
- signal.Notify(sigchan, syscall.SIGWINCH) |
|
| 2323 |
+ gosignal.Notify(sigchan, syscall.SIGWINCH) |
|
| 2324 | 2324 |
go func() {
|
| 2325 | 2325 |
for _ = range sigchan {
|
| 2326 | 2326 |
cli.resizeTty(id) |
| 0 | 11 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,44 @@ |
| 0 |
+package signal |
|
| 1 |
+ |
|
| 2 |
+import ( |
|
| 3 |
+ "os" |
|
| 4 |
+ "os/signal" |
|
| 5 |
+ "syscall" |
|
| 6 |
+) |
|
| 7 |
+ |
|
| 8 |
+func CatchAll(sigc chan os.Signal) {
|
|
| 9 |
+ signal.Notify(sigc, |
|
| 10 |
+ syscall.SIGABRT, |
|
| 11 |
+ syscall.SIGALRM, |
|
| 12 |
+ syscall.SIGBUS, |
|
| 13 |
+ syscall.SIGCHLD, |
|
| 14 |
+ syscall.SIGCONT, |
|
| 15 |
+ syscall.SIGEMT, |
|
| 16 |
+ syscall.SIGFPE, |
|
| 17 |
+ syscall.SIGHUP, |
|
| 18 |
+ syscall.SIGILL, |
|
| 19 |
+ syscall.SIGINFO, |
|
| 20 |
+ syscall.SIGINT, |
|
| 21 |
+ syscall.SIGIO, |
|
| 22 |
+ syscall.SIGIOT, |
|
| 23 |
+ syscall.SIGKILL, |
|
| 24 |
+ syscall.SIGPIPE, |
|
| 25 |
+ syscall.SIGPROF, |
|
| 26 |
+ syscall.SIGQUIT, |
|
| 27 |
+ syscall.SIGSEGV, |
|
| 28 |
+ syscall.SIGSTOP, |
|
| 29 |
+ syscall.SIGSYS, |
|
| 30 |
+ syscall.SIGTERM, |
|
| 31 |
+ syscall.SIGTRAP, |
|
| 32 |
+ syscall.SIGTSTP, |
|
| 33 |
+ syscall.SIGTTIN, |
|
| 34 |
+ syscall.SIGTTOU, |
|
| 35 |
+ syscall.SIGURG, |
|
| 36 |
+ syscall.SIGUSR1, |
|
| 37 |
+ syscall.SIGUSR2, |
|
| 38 |
+ syscall.SIGVTALRM, |
|
| 39 |
+ syscall.SIGWINCH, |
|
| 40 |
+ syscall.SIGXCPU, |
|
| 41 |
+ syscall.SIGXFSZ, |
|
| 42 |
+ ) |
|
| 43 |
+} |
| 0 | 44 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,42 @@ |
| 0 |
+package signal |
|
| 1 |
+ |
|
| 2 |
+import ( |
|
| 3 |
+ "os" |
|
| 4 |
+ "os/signal" |
|
| 5 |
+ "syscall" |
|
| 6 |
+) |
|
| 7 |
+ |
|
| 8 |
+func CatchAll(sigc chan os.Signal) {
|
|
| 9 |
+ signal.Notify(sigc, |
|
| 10 |
+ syscall.SIGABRT, |
|
| 11 |
+ syscall.SIGALRM, |
|
| 12 |
+ syscall.SIGBUS, |
|
| 13 |
+ syscall.SIGCHLD, |
|
| 14 |
+ syscall.SIGCONT, |
|
| 15 |
+ syscall.SIGFPE, |
|
| 16 |
+ syscall.SIGHUP, |
|
| 17 |
+ syscall.SIGILL, |
|
| 18 |
+ syscall.SIGINT, |
|
| 19 |
+ syscall.SIGIO, |
|
| 20 |
+ syscall.SIGIOT, |
|
| 21 |
+ syscall.SIGKILL, |
|
| 22 |
+ syscall.SIGPIPE, |
|
| 23 |
+ syscall.SIGPROF, |
|
| 24 |
+ syscall.SIGQUIT, |
|
| 25 |
+ syscall.SIGSEGV, |
|
| 26 |
+ syscall.SIGSTOP, |
|
| 27 |
+ syscall.SIGSYS, |
|
| 28 |
+ syscall.SIGTERM, |
|
| 29 |
+ syscall.SIGTRAP, |
|
| 30 |
+ syscall.SIGTSTP, |
|
| 31 |
+ syscall.SIGTTIN, |
|
| 32 |
+ syscall.SIGTTOU, |
|
| 33 |
+ syscall.SIGURG, |
|
| 34 |
+ syscall.SIGUSR1, |
|
| 35 |
+ syscall.SIGUSR2, |
|
| 36 |
+ syscall.SIGVTALRM, |
|
| 37 |
+ syscall.SIGWINCH, |
|
| 38 |
+ syscall.SIGXCPU, |
|
| 39 |
+ syscall.SIGXFSZ, |
|
| 40 |
+ ) |
|
| 41 |
+} |
| 0 | 42 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,87 @@ |
| 0 |
+package signal |
|
| 1 |
+ |
|
| 2 |
+import ( |
|
| 3 |
+ "os" |
|
| 4 |
+ "os/signal" |
|
| 5 |
+ "syscall" |
|
| 6 |
+) |
|
| 7 |
+ |
|
| 8 |
+var signalMap = map[string]syscall.Signal{}
|
|
| 9 |
+ |
|
| 10 |
+/* |
|
| 11 |
+ syscall.SIGABRT, |
|
| 12 |
+ syscall.SIGALRM, |
|
| 13 |
+ syscall.SIGBUS, |
|
| 14 |
+ syscall.SIGCHLD, |
|
| 15 |
+ syscall.SIGCLD, |
|
| 16 |
+ syscall.SIGCONT, |
|
| 17 |
+ syscall.SIGFPE, |
|
| 18 |
+ syscall.SIGHUP, |
|
| 19 |
+ syscall.SIGILL, |
|
| 20 |
+ syscall.SIGINT, |
|
| 21 |
+ syscall.SIGIO, |
|
| 22 |
+ syscall.SIGIOT, |
|
| 23 |
+ syscall.SIGKILL, |
|
| 24 |
+ syscall.SIGPIPE, |
|
| 25 |
+ syscall.SIGPOLL, |
|
| 26 |
+ syscall.SIGPROF, |
|
| 27 |
+ syscall.SIGPWR, |
|
| 28 |
+ syscall.SIGQUIT, |
|
| 29 |
+ syscall.SIGSEGV, |
|
| 30 |
+ syscall.SIGSTKFLT, |
|
| 31 |
+ syscall.SIGSTOP, |
|
| 32 |
+ syscall.SIGSYS, |
|
| 33 |
+ syscall.SIGTERM, |
|
| 34 |
+ syscall.SIGTRAP, |
|
| 35 |
+ syscall.SIGTSTP, |
|
| 36 |
+ syscall.SIGTTIN, |
|
| 37 |
+ syscall.SIGTTOU, |
|
| 38 |
+ syscall.SIGUNUSED, |
|
| 39 |
+ syscall.SIGURG, |
|
| 40 |
+ syscall.SIGUSR1, |
|
| 41 |
+ syscall.SIGUSR2, |
|
| 42 |
+ syscall.SIGVTALRM, |
|
| 43 |
+ syscall.SIGWINCH, |
|
| 44 |
+ syscall.SIGXCPU, |
|
| 45 |
+ syscall.SIGXFSZ, |
|
| 46 |
+*/ |
|
| 47 |
+ |
|
| 48 |
+func CatchAll(sigc chan os.Signal) {
|
|
| 49 |
+ signal.Notify(sigc, |
|
| 50 |
+ syscall.SIGABRT, |
|
| 51 |
+ syscall.SIGALRM, |
|
| 52 |
+ syscall.SIGBUS, |
|
| 53 |
+ syscall.SIGCHLD, |
|
| 54 |
+ syscall.SIGCLD, |
|
| 55 |
+ syscall.SIGCONT, |
|
| 56 |
+ syscall.SIGFPE, |
|
| 57 |
+ syscall.SIGHUP, |
|
| 58 |
+ syscall.SIGILL, |
|
| 59 |
+ syscall.SIGINT, |
|
| 60 |
+ syscall.SIGIO, |
|
| 61 |
+ syscall.SIGIOT, |
|
| 62 |
+ syscall.SIGKILL, |
|
| 63 |
+ syscall.SIGPIPE, |
|
| 64 |
+ syscall.SIGPOLL, |
|
| 65 |
+ syscall.SIGPROF, |
|
| 66 |
+ syscall.SIGPWR, |
|
| 67 |
+ syscall.SIGQUIT, |
|
| 68 |
+ syscall.SIGSEGV, |
|
| 69 |
+ syscall.SIGSTKFLT, |
|
| 70 |
+ syscall.SIGSTOP, |
|
| 71 |
+ syscall.SIGSYS, |
|
| 72 |
+ syscall.SIGTERM, |
|
| 73 |
+ syscall.SIGTRAP, |
|
| 74 |
+ syscall.SIGTSTP, |
|
| 75 |
+ syscall.SIGTTIN, |
|
| 76 |
+ syscall.SIGTTOU, |
|
| 77 |
+ syscall.SIGUNUSED, |
|
| 78 |
+ syscall.SIGURG, |
|
| 79 |
+ syscall.SIGUSR1, |
|
| 80 |
+ syscall.SIGUSR2, |
|
| 81 |
+ syscall.SIGVTALRM, |
|
| 82 |
+ syscall.SIGWINCH, |
|
| 83 |
+ syscall.SIGXCPU, |
|
| 84 |
+ syscall.SIGXFSZ, |
|
| 85 |
+ ) |
|
| 86 |
+} |
| 12 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,44 +0,0 @@ |
| 1 |
-package utils |
|
| 2 |
- |
|
| 3 |
-import ( |
|
| 4 |
- "os" |
|
| 5 |
- "os/signal" |
|
| 6 |
- "syscall" |
|
| 7 |
-) |
|
| 8 |
- |
|
| 9 |
-func CatchAll(sigc chan os.Signal) {
|
|
| 10 |
- signal.Notify(sigc, |
|
| 11 |
- syscall.SIGABRT, |
|
| 12 |
- syscall.SIGALRM, |
|
| 13 |
- syscall.SIGBUS, |
|
| 14 |
- syscall.SIGCHLD, |
|
| 15 |
- syscall.SIGCONT, |
|
| 16 |
- syscall.SIGEMT, |
|
| 17 |
- syscall.SIGFPE, |
|
| 18 |
- syscall.SIGHUP, |
|
| 19 |
- syscall.SIGILL, |
|
| 20 |
- syscall.SIGINFO, |
|
| 21 |
- syscall.SIGINT, |
|
| 22 |
- syscall.SIGIO, |
|
| 23 |
- syscall.SIGIOT, |
|
| 24 |
- syscall.SIGKILL, |
|
| 25 |
- syscall.SIGPIPE, |
|
| 26 |
- syscall.SIGPROF, |
|
| 27 |
- syscall.SIGQUIT, |
|
| 28 |
- syscall.SIGSEGV, |
|
| 29 |
- syscall.SIGSTOP, |
|
| 30 |
- syscall.SIGSYS, |
|
| 31 |
- syscall.SIGTERM, |
|
| 32 |
- syscall.SIGTRAP, |
|
| 33 |
- syscall.SIGTSTP, |
|
| 34 |
- syscall.SIGTTIN, |
|
| 35 |
- syscall.SIGTTOU, |
|
| 36 |
- syscall.SIGURG, |
|
| 37 |
- syscall.SIGUSR1, |
|
| 38 |
- syscall.SIGUSR2, |
|
| 39 |
- syscall.SIGVTALRM, |
|
| 40 |
- syscall.SIGWINCH, |
|
| 41 |
- syscall.SIGXCPU, |
|
| 42 |
- syscall.SIGXFSZ, |
|
| 43 |
- ) |
|
| 44 |
-} |
| 45 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,47 +0,0 @@ |
| 1 |
-package utils |
|
| 2 |
- |
|
| 3 |
-import ( |
|
| 4 |
- "os" |
|
| 5 |
- "os/signal" |
|
| 6 |
- "syscall" |
|
| 7 |
-) |
|
| 8 |
- |
|
| 9 |
-func CatchAll(sigc chan os.Signal) {
|
|
| 10 |
- signal.Notify(sigc, |
|
| 11 |
- syscall.SIGABRT, |
|
| 12 |
- syscall.SIGALRM, |
|
| 13 |
- syscall.SIGBUS, |
|
| 14 |
- syscall.SIGCHLD, |
|
| 15 |
- syscall.SIGCLD, |
|
| 16 |
- syscall.SIGCONT, |
|
| 17 |
- syscall.SIGFPE, |
|
| 18 |
- syscall.SIGHUP, |
|
| 19 |
- syscall.SIGILL, |
|
| 20 |
- syscall.SIGINT, |
|
| 21 |
- syscall.SIGIO, |
|
| 22 |
- syscall.SIGIOT, |
|
| 23 |
- syscall.SIGKILL, |
|
| 24 |
- syscall.SIGPIPE, |
|
| 25 |
- syscall.SIGPOLL, |
|
| 26 |
- syscall.SIGPROF, |
|
| 27 |
- syscall.SIGPWR, |
|
| 28 |
- syscall.SIGQUIT, |
|
| 29 |
- syscall.SIGSEGV, |
|
| 30 |
- syscall.SIGSTKFLT, |
|
| 31 |
- syscall.SIGSTOP, |
|
| 32 |
- syscall.SIGSYS, |
|
| 33 |
- syscall.SIGTERM, |
|
| 34 |
- syscall.SIGTRAP, |
|
| 35 |
- syscall.SIGTSTP, |
|
| 36 |
- syscall.SIGTTIN, |
|
| 37 |
- syscall.SIGTTOU, |
|
| 38 |
- syscall.SIGUNUSED, |
|
| 39 |
- syscall.SIGURG, |
|
| 40 |
- syscall.SIGUSR1, |
|
| 41 |
- syscall.SIGUSR2, |
|
| 42 |
- syscall.SIGVTALRM, |
|
| 43 |
- syscall.SIGWINCH, |
|
| 44 |
- syscall.SIGXCPU, |
|
| 45 |
- syscall.SIGXFSZ, |
|
| 46 |
- ) |
|
| 47 |
-} |