カーネルのアップグレードとは別に、Linuxシステムに再起動が必要な変更がありますか?再起動により状況が簡単になる状況はありますが、再起動しない限り達成できない状況はありますか?
明確にするために:ハードウェアの誤動作に悩まされていない典型的なデスクトップまたはサーバーシステムを考えています。
カーネルのアップグレードとは別に、Linuxシステムに再起動が必要な変更がありますか?再起動により状況が簡単になる状況はありますが、再起動しない限り達成できない状況はありますか?
明確にするために:ハードウェアの誤動作に悩まされていない典型的なデスクトップまたはサーバーシステムを考えています。
回答:
いくつかのことが思い浮かびます。
カーネルパニックから回復する
カーネルパニックは、定義上、カーネルを再起動しないと回復できません。
端末にアクセスできなくなるハングから回復する
システムが応答せず、回復するためのコマンドを発行する方法がないまま立ち往生している場合、できることはリブートすることだけです。通常、手動での電源の再投入は避けたいでしょう。このような状況では、LinuxカーネルはMagic SysRqをサポートしており、緊急時にマシンを再起動するために使用できます。
CONFIG_MAGIC_SYSRQ
カーネル構成でkernel.sysrq
sysctl
オプションが有効になっており、オプションが有効になっている限り、魔法のSysRqキーの組み合わせを使用して、コマンドをカーネルに直接発行できます。
以下のAlt+ SysRqは、を押し続け Alt、次に押し 続けることを意味することに注意してくださいSysRq(通常はPrintScrnキー)。
SIGTERM
を除くすべてのプロセスに送信し、init
正常に終了する機会を与えますSIGKILL
を除くすべてのプロセスに送信しinit
、強制的に終了させますAlt+ SysRq+ b:再起動、または
Alt+ SysRq+ o:シャットダウン
グレースフルリブートを試行するためのマジックSysRqキーの組み合わせのニーモニックは次のとおりです。
" R EBOOT E VEN I F S ystem U tterly Bのroke "
ヘッドレスサーバーの場合、ネットワーク上でリモートSysRqシーケンスを有効にするiptablesターゲットもあります。
起動できない状態から回復する
システムがすでに通常のブートが不可能な状態になっている場合(たとえば、システムアップグレードの失敗、ファイルシステムの破損など)、システムの回復コンソールにアクセスする唯一の方法は再起動することです適切な起動時オプションを使用します。
起動時のカーネルパラメータを変更する
一部のカーネルパラメーター(audit
カーネル監査の有効化/無効化など)は、ブート時にカーネルが読み込まれるときにのみ設定できます。
再起動する場所を考えることができるのは2回あります。
システムが適切な状態で起動できることを確認する必要がある場合。
私はかつて、実行中にいくつかのデーモンが設定されたシステムで働いていました。数年実行した後、電源障害が原因で再起動しましたが、デーモンは起動プロセスの一部ではなく、数年前にどのように設定されたのか誰にもわかりませんでした。システムの再構成方法を考えている間に、システムは数日間ダウンしていました。
実際に再起動することは、停電後にシステムが適切に再起動することを確認する唯一の方法です。
システムライブラリが更新されたとき。
システム上の多くのアプリ/サーバーと共有されているライブラリで重大なセキュリティ上の欠陥が発見されたとしましょう。再起動せずにライブラリを更新できますが、安全でないライブラリがロードされた状態で実行されているプロセスの数はいくつですか?古いライブラリを使用して何でも苦労して再起動できます(把握できる場合)が、エラーが発生しやすく、再起動するよりも時間がかかる可能性があります。
再起動は、実行中のすべてのプロセスがまだ古いバグのあるライブラリを使用していないことを確認するための最良の方法です。
lsof
をアップグレードする前に、使用しているメモリ空間にライブラリがマップされているプロセスを確認できます。