sshを介した再起動 --force の呼び出し:再起動する前にsshセッションが切断されますか?

sshを介した再起動 --force の呼び出し:再起動する前にsshセッションが切断されますか?

reboot --forceスクリプトは自動的にsshを介して実行する必要があります(--forceがデータを失うことを心配しないでください。sync以前はすでにコマンドを実行しています)。

これまで、私は次のように成功しました。

orig_args=(bash -c "nohup reboot --force >/dev/null 2>&1 </dev/null &")

args=(); for v in "${orig_args[@]}"; do args+=("$(printf %q "$v")"); done

ssh host "${args[@]}"

意味は

bash -c "nohup reboot --force >/dev/null 2>&1 </dev/null &"

reboot --forceつまり、SSH接続が閉じられても、フォアグラウンドで実行されます。

再起動する前にSSHセッションの切断が発生したいのですが、わかりません。

つまり、次は可能ですか?

オペレーティングシステムがバックグラウンド再起動操作をすばやく開始すると、ssh接続が失われ、sshコマンド自体が失敗する可能性があります。

答えが偽であることを願っています。私の希望を支えるものはありますか?

答えが「不明」であれば、リスクを取ることができず、別の方法を使用します。面倒これを保証する方法。

orig_args=(bash -c "nohup bash -c 'sleep 1; reboot --force' >/dev/null 2>&1 </dev/null &")

args=(); for v in "${orig_args[@]}"; do args+=("$(printf %q "$v")"); done

ssh host "${args[@]}"

sleep 2

これは、sshコマンドがreboot --forceサーバーで実行されてから1秒後に終了することを意味します。その後、クライアント側で2秒間待ちます。

これで私は確信できます

  • ssh コマンドは常に成功します。
  • スクリプト全体が終了したら、少なくともサーバーを停止する必要があります。

関連情報