私が使用しているシステムは、ssh
Linuxシステムにリモートで接続するためのものです。次に、単一のシェルコマンドを実行し、シェルコマンドの出力を分析します。
を実行すると、もちろん再起動するとSSH接続が終了するため、reboot
終了コードが表示されます。ゼロ以外の終了コードを使用するとシステム登録が失敗したため、セッションを正常に再開して終了する-1
ために1行のコマンドを作成しようとしました。ssh
問題のコンピュータは非常に簡単で、再起動ユーティリティではオプションを許可しないため、後で再起動するようにスケジュールすることはできません。
悩みの末に私は走ってみた。
$ sleep 3 && reboot & exit
手動で呼び出すと機能します。エラーコードで接続が閉じられ、0
3秒後にコンピュータが再起動します。途方もない。
しかし、システムを介して同じコマンドを実行しても、実際には再起動されませんでした。終了コード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