スタンドアロンの伝送デーモンをhttpsでドッキングしようとしています。そのため、transmission-daemon
およびnginx
パッケージを使用しており、DockerはAlpineLinuxに基づいています。
両方のプログラムを実行するために、私はsupervisor
を使用しています。
すべて正常に機能しますが、docker container stop
がコンテナを正常に強制終了するようにします。そこで、TERMシグナルをtransmission-daemon
に伝播するようにsupervisor
を構成しました。
これは、トランスミッションがアイドル状態のときにうまく機能します。しかし、ダウンロードまたは何かをしているときにコンテナを停止すると、残念ながら機能しません。ダウンロードが終了した後も実行を続けるため、信号を完全に無視しているように見えます。
理由は全くわかりません。誰かが私を助けてくれますか?
これが私のスーパーバイザー送信構成です:
[program:transmission]
user=transmission
command=/usr/bin/transmission-daemon -f
stopsignal=TERM
stopwaitsecs=60
stopasgroup=true
killasgroup=true
私はどんな提案にもオープンです。
Transmission Arch wiki からtransmission-daemon
を終了するコマンドは次のようになります。
killall transmission-daemon
または
$ transmission-remote --exit
または buntuのヘルプ: から
transmission-remote -n 'transmission:transmission' -q
SIGTERMシグナルとTERMシグナルは同じだと思います。また、killall
のデフォルトはSIGTERMを送信することです。スーパーバイザーは機能するはずです... stopwaitsecsの後、KILLシグナルも送信することになっているので、そうでない場合は適切なタイミングで適切な信号を送信していません...端末でTERM/SIGTERMが送信を強制終了することを確認してください。そうでない場合は、バグである可能性があります。
redirect_stderr
またはstdout_logfile
行を追加して、スーパーバイザーに役立つ情報が表示されるかどうかを確認してください。
おそらくバグです。アルパインバグトラッカーで報告: