ターミナルをシャットダウンするための適切な方法は何ですか?

ターミナルをシャットダウンするための適切な方法は何ですか?

SSH経由でPCをシャットダウンしようとしました。

sudo shutdown now

ユーザーはログアウトし、Ubuntu の電源をオフにし始めましたが、Ubuntu のロゴと読み込みドットが表示された最後の画面でフリーズしました。どこに問題があるのか​​、何か心当たりはありますか?

shutdownまた、との違いは何ですかhalt? 他に類似のコマンドはありますか?

答え1

MAN ページより:

シャットダウン- 「シャットダウンは、システムを安全に停止するように手配します。ログインしているすべてのユーザーにシステムが停止することが通知され、TIME の最後の 5 分以内は、新しいログインが禁止されます。」ここで言及されている時間は、シャットダウンするユーザーが指定した時間です。

停止- 「これらのプログラムにより、システム管理者はシステムを再起動、停止、または電源オフにすることができます。」

違いは、シャットダウン時に Halt の方が Shutdown 自体よりも「積極的」であることです。サービスや開いているプログラムに関係なく、文字通りシステムを強制的にシャットダウンできるパラメータがあります。パラメータなしで halt を実行すると、単にシャットダウン コマンドが実行されます。エイリアスのようなものです。たとえば、パラメータ付きで実行すると、--forceシステムを非常に速く「強制的に」再起動します。

停止またはシャットダウンの場合、PC の電源を切ったり再起動したりする前に、すべてのプロセスが正常に終了するまで待機します。サービスまたはアプリが閉じなかったり、適切に閉じられなかったりする場合は、そこに記載したものが表示されます (ドット付きの Ubuntu ロゴ)。

単一ユーザーまたは複数ユーザーの場合、ターミナルで適切な方法はシャットダウンです。ただし、シャットダウンが機能しない場合は、実行中のサービスと、シャットダウンの速度低下やフリーズの原因となっているサービスを確認してください。

これを念頭に置いて、システムを再起動またはシャットダウンする方法はいくつかあります。

再起動中- shutdown -rreboot

この場合、reboot は単に を呼び出しますshutdown -r

シャットダウン- halt、、、、、shutdownsudo init 0shutdown -h nowpoweroff

この場合はpoweroffshutdown -P

お気づきのとおり、このshutdownコマンドは多くのことを実行できます。以下にその小さなリストを示します。

-r  Requests that the system be rebooted after it has been brought down
-h  Requests that the system be either halted or powered off after it has been brought down, with the choice as to which left up to the system
-H  Requests that the system be halted after it has been brought down
-P  Requests that the system be powered off after it has been brought down
-c  Cancels a running shutdown. TIME is not specified with this option, the first argument is MESSAGE
-k  Only send out the warning messages and disable logins, do not actually bring the system down

同様にreboot

-f, --force                 force reboot or halt, don't call shutdown(8)
-p, --poweroff              switch off the power when called as halt

ただし、ターミナルからシャットダウンすることと、Unity でシャットダウン オプションをクリックすることの間には違いがあります。後者は、保存されていない作業 (libreoffice、inkscape など) に対する操作をユーザーに求めます。前者は、すべてのプロセスに終了するように指示する信号を送信するだけです。ユーザーの操作は必要ないため、保存されていない作業はすべて削除されます。

答え2

必要なのは、以下のコマンドを実行して、シャットダウン後にコンピューターの電源をオフにすることです。

sudo シャットダウン -P 20

答え3

システムをシャットダウンするためのもう一つのコマンドは

sudo init 0

init 0 はすべてのシャットダウン スクリプトを呼び出し、マシンを正常にシャットダウンします。

答え4

スクリプトを作成します。

#!/bin/bash 
shopt -s nocasematch
read -t 30 -N 1 -p 'Shutdown now? (Y/n) '
[[ "$REPLY" =~ n ]] || sudo poweroff

関連情報