Skip to content

Commit 55b81f4

Browse files
authored
Shutdown gracefully (#1018)
1 parent 456867d commit 55b81f4

File tree

4 files changed

+28
-6
lines changed

4 files changed

+28
-6
lines changed

cmd/agent/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func main() {
2828
ctx, cancel := context.WithCancel(context.Background())
2929

3030
sigChan := make(chan os.Signal, 1)
31-
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
31+
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
3232
go func() {
3333
select {
3434
case <-sigChan:

internal/config/config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,10 @@ func ResolveConfig() (*Config, error) {
8787
dir += "/"
8888
}
8989
allowedDirs = append(allowedDirs, dir)
90-
slog.Info("Configured allowed directories", "allowed_directories", allowedDirs)
9190
}
9291

92+
slog.Info("Configured allowed directories", "allowed_directories", allowedDirs)
93+
9394
// Collect all parsing errors before returning the error, so the user sees all issues with config
9495
// in one error message.
9596
var err error

test/docker/entrypoint.sh

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,28 @@
22

33
set -euxo pipefail
44

5-
handle_term()
6-
{
5+
handle_term() {
76
echo "received TERM signal"
87
echo "stopping nginx-agent ..."
98
kill -TERM "${agent_pid}" 2>/dev/null
9+
wait -n ${agent_pid}
1010
echo "stopping nginx ..."
1111
kill -TERM "${nginx_pid}" 2>/dev/null
12+
wait -n ${nginx_pid}
13+
}
14+
15+
handle_quit() {
16+
echo "received QUIT signal"
17+
echo "stopping nginx-agent ..."
18+
kill -QUIT "${agent_pid}" 2>/dev/null
19+
wait -n ${agent_pid}
20+
echo "stopping nginx ..."
21+
kill -QUIT "${nginx_pid}" 2>/dev/null
22+
wait -n ${nginx_pid}
1223
}
1324

14-
trap 'handle_term' TERM
25+
trap 'handle_term' TERM
26+
trap 'handle_quit' QUIT
1527

1628
# Launch nginx
1729
echo "starting nginx ..."

test/docker/nginxless-entrypoint.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,18 @@ handle_term()
77
echo "received TERM signal"
88
echo "stopping nginx-agent ..."
99
kill -TERM "${agent_pid}" 2>/dev/null
10+
wait -n ${agent_pid}
1011
}
1112

12-
trap 'handle_term' TERM
13+
handle_quit() {
14+
echo "received QUIT signal"
15+
echo "stopping nginx-agent ..."
16+
kill -QUIT "${agent_pid}" 2>/dev/null
17+
wait -n ${agent_pid}
18+
}
19+
20+
trap 'handle_term' TERM
21+
trap 'handle_quit' QUIT
1322

1423
cat /etc/nginx-agent/nginx-agent.conf;
1524

0 commit comments

Comments
 (0)