annotate docker/base/scripts/sat @ 116:d0a5db5b9bdf

docker: fixed bad stopping: - use exec when it was missing, so the TERM signal is properly catched, and containers can be stopped instead of being killed after 10s - for a unknown reason, exec and su don't handle correctly "$@" with Docker in base.scripts/sat. It's working as expected when launched from withing a running container, but not when launched with "docker run", so a workaround is used with trap and wait
author Goffi <goffi@goffi.org>
date Fri, 04 Mar 2016 23:31:26 +0100
parents b69056368901
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
105
b69056368901 docker: images optimisation:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/bin/sh
b69056368901 docker: images optimisation:
Goffi <goffi@goffi.org>
parents:
diff changeset
2 # account domain is set, then sat is launched with D-Bus activated
116
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
3
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
4 # XXX: exec is not working with Docker and su here for whatever reason, so using trap/wait workaround
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
5 # thanks to cuonglm for the tip (https://unix.stackexchange.com/questions/146756/forward-sigterm-to-child-in-bash/146770#146770)
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
6
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
7 on_sigterm() {
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
8 /usr/bin/sat stop
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
9 # to have a proper exit code
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
10 exit $?
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
11 }
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
12 trap on_sigterm TERM
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
13
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
14 set_account_domain
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
15 eval $(dbus-launch --sh-syntax)
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
16 su -c "/usr/bin/sat $@" sat &
d0a5db5b9bdf docker: fixed bad stopping:
Goffi <goffi@goffi.org>
parents: 105
diff changeset
17 wait $!