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 |
|
rev |
line source |
105
|
1 #!/bin/sh |
|
2 # account domain is set, then sat is launched with D-Bus activated |
116
|
3 |
|
4 # XXX: exec is not working with Docker and su here for whatever reason, so using trap/wait workaround |
|
5 # thanks to cuonglm for the tip (https://unix.stackexchange.com/questions/146756/forward-sigterm-to-child-in-bash/146770#146770) |
|
6 |
|
7 on_sigterm() { |
|
8 /usr/bin/sat stop |
|
9 # to have a proper exit code |
|
10 exit $? |
|
11 } |
|
12 trap on_sigterm TERM |
|
13 |
|
14 set_account_domain |
|
15 eval $(dbus-launch --sh-syntax) |
|
16 su -c "/usr/bin/sat $@" sat & |
|
17 wait $! |