説明
DOS 時代には、多くの友人がすでにコンピューター ゲームをプレイしていました。 当時、DOS システムをシャットダウンするときは、直接電源スイッチを切ることが多かったですが、面倒な場合は、電源スイッチを 4 秒間押し続けると、Windows をシャットダウンできます。ただし、Linux では、これはお勧めできません。
なぜですか? Windows (非 NT ホスト システム) システムでは、1 人で疑似マルチタスクを実行しているため、たとえ自分のコンピュータがシャットダウンされても、他のコンピュータには影響がありません。ただし、Linux では、各プログラム (またはサービス) がバックグラウンドで実行されているため、実際には、Web の閲覧や送信など、画面の裏側でホスト上で同時に作業している人がかなりいる可能性があります。手紙やFTPでのファイル転送など、電源スイッチを直接押してシャットダウンすると、他人のデータが中断される恐れがあります。それは神経をすり減らすことになるかもしれません。
さらに、最大の問題は、異常終了した場合にファイルシステムに損傷を与える可能性があることです(ファイルにデータを書き戻す時間がないため、一部のサービスファイルに問題が発生します!)。したがって、通常の状況では、シャットダウンするときに次のことに注意する必要があります:
システムの使用状況を観察します
現在オンラインになっている人を確認したい場合は、「who」コマンドを発行できます。
ネットワーク接続ステータスを確認したい場合は、「netstat -a」コマンドを発行できます。
バックグラウンドで実行されているプログラムを確認したい場合は、「ps -aux」コマンドを実行できます。
これらのコマンドを使用すると、ホストの現在の使用状況を少し知ることができます。もちろん、これにより、シャットダウンが可能かどうかを判断できます (これらのコマンドについては、後で一般的な Linux コマンドで説明します!)
オンライン ユーザーにシャットダウン時間を通知する: シャットダウンする前に、オンライン ユーザーに終了までの時間を常に与えてください。これらは機能するため、現時点では shutdown 特殊コマンドを使用してこの機能を実現できます。
正しいシャットダウン コマンドは、shutdown や reboot などの
を使用することです。 それでは、シャットダウン/再起動に関連するいくつかのコマンドについて説明しましょう。
データをハードディスクに同期的に書き込むコマンド: sync 一般的に使用されるシャットダウンコマンド: shutdown 再起動、シャットダウン: 再起動、停止、電源オフ
sync
コンピューター内でデータが実行されるモードであり、すべてのデータを読み取る必要がありますデータはメモリにロードされた後、CPU によって処理できますが、多くの場合、データはメモリからハードディスクに書き戻す必要があります (ストレージ操作など)。 ハードディスクの速度が(メモリに比べて)遅すぎるため、メモリとハードディスクの間でデータの書き込み/読み取りが頻繁に行われると、システムのパフォーマンスがあまり良くなくなります。
そのため、Linux システムでは、データの読み取りを高速化するために、デフォルトで、メモリにロードされた一部のデータはハードディスクに直接書き戻されず、最初にメモリにキャッシュされます。このようにして、データを何度も書き換える場合、ハードディスクに書き込まれていないので、メモリから直接読み込むことができ、速度ははるかに速いはずです。
ただし、これは何らかの問題を引き起こします。つまり、何らかの特別な状況 (停電や誤って電源を入れてしまったなど) によりシステムが異常にシャットダウンした場合、データはまだハードディスクに書き込まれません。おお!そのため、データのバージョンアップが異常になります! じゃあ何をすればいいの?このとき、データを書き込むには sync コマンドが必要です。 テキストインターフェイスに直接「sync」と入力すると、メモリ内の更新されていないデータがハードディスクに書き込まれます。したがって、このコマンドはシステムをシャットダウンまたは再起動する前に非常に重要です。何度か実行した方が良いですよ!
現在のシャットダウン/再起動/停止およびその他のコマンドは、シャットダウン前に既に同期ツールを呼び出していますが、さらに数回実行する方が安全です。
シャットダウン
Linux のシャットダウンは非常に重要なタスクであるため、ホストの前で tty7 グラフィカル インターフェイスを使用してシステムにログインする場合を除き、リモートを使用している場合は、使用する ID に関係なくシステムをシャットダウンできます。管理ツール (他のコンピューターからホストにログインするために、pietty を介して透過的に ssh サービスを使用するなど) を使用した場合、root のみがシャットダウンする権限を持ちます。
うーん!それでは、電話の電源を切って試してみましょう。私たちが一般的に使用するのは shutdown コマンドです。このコマンドは、システム内のさまざまなプログラム (プロセス) に通知し、システム内の実行レベルの一部のサービスにシャットダウンするように通知します。シャットダウンでは次のタスクを実行できます:
シャットダウン モードを自由に選択できます: シャットダウン、再起動、またはシングルプレイヤー操作モードに入ることができます。シャットダウン時間を設定できます: 今すぐシャットダウンするように設定できます。特定の時間を設定できます。シャットダウンするだけです。 シャットダウン情報はカスタマイズ可能: シャットダウンする前に、独自に構成した情報をオンライン ユーザーに送信できます。 警告メッセージを発行するだけで済みます。場合によっては、いくつかのテストを実施する必要があるが、他のユーザーに干渉されたくない場合や、ユーザーに一定期間注意するよう明確に指示することもできます。このとき、シャットダウンを使用してユーザーを怖がらせることができますが、実際にはシャットダウンするわけではありません。 fsck でファイル システムをチェックするかどうかを選択できます。
[root@www ~]# /sbin/shutdown [-t 秒] [-arkhncfF] 時間 [警告メッセージ]
オプションとパラメータ:
-t sec: -t の後に秒、つまり「何秒」 「パスしました」 「後でシャットダウンする」 という意味です
-k : 実際にシャットダウンするのではなく、警告メッセージを送信するだけです。
-r : サービス停止後、システムを再起動します(共用)
-h : システムサービス停止後、ただちにシステムをシャットダウンします。 (よく使われます)
-n : initプログラムを経由せずにshutdown関数で直接シャットダウンします
-f : シャットダウン起動後、fsckディスクチェックを強制的にスキップします
-F : システム再起動後、強制的にシャットダウンしますfsck ディスクチェック
-c : すでに実行中のシャットダウンコマンドの内容をキャンセルします。
時間: これは追加する必要があるパラメーターです。システムをシャットダウンする時間を指定してください!以下に時間の例を説明します。
例:
[root@www ~]# /sbin/shutdown -h 10 '10 分後にシャットダウンします'
# 言っておきますが、このマシンは 10 分後にシャットダウンします。そして、現在のログイン画面の前面に表示されます。
# パラメーターについては?以下にいくつか紹介していきます!
さらに、時間パラメーターをコマンドに追加する必要があることに注意してください。そうしないと、シャットダウンが自動的に実行レベル 1 (これは、1 人によるメンテナンスのログイン状況です) にジャンプします。 -ひどい!時間パラメータの例をいくつか示します:
[root@www ~]# shutdown -h now
すぐにシャットダウンします。now は時間 0 の状態に相当します
[root@www ~]# shutdown -h 20:25
システムは今日の 20:25 にシャットダウンされます。このコマンドが 21:25 に発行された場合、翌日にはシャットダウンされます
[root@www ~]# shutdown -h +10
システムは自動的にシャットダウンされます。さらに 10 分後にダウンします
[root @www ~]# shutdown -r now
システムはすぐに再起動します
[root@www ~]# shutdown -r +30 'システムは再起動します'
システムは 30 分で再起動しますすべてのオンライン ユーザー
[root@www ~]# shutdown -k now 'このシステムは再起動します'
警告レターを発行するためのパラメーターのみ!システムはシャットダウンしません!人々を怖がらせてください!
再起動、停止、電源オフ
再起動とシャットダウンのタスクを実行できる 3 つのコマンド、つまり再起動、停止、電源オフもあります。 実際、これら 3 つのコマンドによって呼び出される関数ライブラリは似ているため、「man reboot」を使用すると、3 つのコマンドの使用法が同時に表示されます。
これらのコマンドはコンピューターをシャットダウンまたは再起動できるので、違いはありますか?基本的に、デフォルトでは、これらのコマンドは同じジョブを完了します。 (なぜなら、halt は最初に shutdown を呼び出し、shutdown は最後に halt を呼び出すからです!)。 ただし、シャットダウンでは、シャットダウンする前に、現在開始されているサービスに応じて各サービスを 1 つずつ閉じることができます。停止の場合は、現在のシステムのステータスに注意を払うことなく、ハードウェア シャットダウンの特別な機能を実行できます。ホスト上で root を使用して次の 2 つのコマンドを実行してシャットダウンできます。比較して違いを確認してください。
上記は、Linux の正しいシャットダウン方法に関する Note 002 の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。