顧客がssh
停止したかどうかはわかりますか?
私が実行しているとしましょう:
ssh server command
そして別のウィンドウで
killall -STOP ssh
command
どういうわけか検出できますか? stdout / stderrに大量のデータを送信すると、それを検出できるようです。そのデータがブロックされると、クライアントプログラムが中断されたことを示します。
しかし、stderr / stdoutにデータを送信せずにこれを行うことはできますか?
背景
GNU Parallel がリモートジョブを実行すると、これらのジョブはマスターノードがシャットダウンすると終了します。これはラッパーを使用して行われ、うまく機能します。ただし、マスターサーバーのみを一時停止すると、リモートジョブは一時停止しません。メインサーバーが停止していることをリモート側で検出できる場合は、ジョブを停止するラッパーを作成できます。
答え1
いいえ(ただし、問題を解決する別の方法があるかもしれません。)。クライアントの外部では、停止したクライアントプロセスとパケットを破棄または遅延させるネットワークリンクを区別することはできません。