svscanctl
TL;DR; 公式ドキュメント
-a (Alarm)
# s6-svscanctl -a <svscandir> で対象ディレクトリ以下のサービスを直ちにスキャンする
$ s6-svscanctl -a /var/run/s6/services
# /var/run/s6/services以下には、/etc/services.d以下で定義しておいたサービス+αが作成されている
# ls /etc/services.d/
resolver
# /etc/s6/init # ls /var/run/s6/services
resolver s6-fdholderd
-t (Terminate)
s6-svscanがsuperviseしている全サービスにSIGTERMを送る。
応用すると、複数のサービスのうち特定のサービスが終了するときに全サービスを終了させるのは以下のように書ける。
/etc/services.d//finish
#!/usr/bin/execlineb -S1
# only tell s6 to bring down the entire container, if it isn't already doing so
if { s6-test ${1} -ne 0 }
if { s6-test ${1} -ne 256 }
s6-svscanctl -t /var/run/s6/services
引用元: janeczku/docker-alpine-kubernetes
READMEのここも参考に: https://github.com/just-containers/s6-overlay#writing-an-optional-finish-script