-1コードを返さずにSSH接続を介してどのように再起動できますか?

-1コードを返さずにSSH接続を介してどのように再起動できますか?

私が使用しているシステムは、sshLinuxシステムにリモートで接続するためのものです。次に、単一のシェルコマンドを実行し、シェルコマンドの出力を分析します。

を実行すると、もちろん再起動するとSSH接続が終了するため、reboot終了コードが表示されます。ゼロ以外の終了コードを使用するとシステム登録が失敗したため、セッションを正常に再開して終了する-1ために1行のコマンドを作成しようとしました。ssh

問題のコンピュータは非常に簡単で、再起動ユーティリティではオプションを許可しないため、後で再起動するようにスケジュールすることはできません。

悩みの末に私は走ってみた。

$ sleep 3 && reboot & exit

手動で呼び出すと機能します。エラーコードで接続が閉じられ、03秒後にコンピュータが再起動します。途方もない。

しかし、システムを介して同じコマンドを実行しても、実際には再起動されませんでした。終了コード0のみを返し、再起動しません。

なぜですか?

答え1

shutdownコマンドを使用してください。

shutdown --reboot +1 "System is going down for reboot in 1 minute"

rebootうまくいかないのはttyが必要だからだと思います。バックグラウンドttyを使用して実行できますが、そのshutdownコマンドには応答に示すようにキャンセルを含む必要なものがすべて含まれています。

Shutdown scheduled for Thu 2018-02-22 15:19:33 MST, use 'shutdown -c' to cancel.

答え2

通常、 を return するとtrue終了コード 0 が返されます。

shutdown -r now || true

関連情報