今週、PCは再起動した?地味だけど最強のエンジニアトラブルシューティング術
Have you restarted your computer this week?
Have you restarted your computer this week?
エンジニア界隈でよく言われる「とりあえず再起動してみた?」という言葉。これ、ただのジョークや丸投げだと思っていませんか?実は、メモリリークの解消やゾンビプロセスの終了、カーネルレベルの不具合修正など、システムの安定稼働において最も手軽で強力な解決策の一つなんです。今週まだ再起動していないなら、ぜひ一度試してみてください。驚くほど動作が軽くなるかもしれませんよ!
データがあるわけじゃないけど、Macユーザーは使い終わったあとにPCを「掃除」する習慣があまりない気がする。WindowsやLinuxのユーザーは、作業が終わればノートPCをシャットダウンすることが多いよね。これはMacの設計思想のせいだと思う。何をやっても完全に終了はしなくて、アプリを閉じてもただ「最小化」されるだけ。蓋を閉じてもサスペンドになるのと同じ挙動だし。そういえばiPhoneも昔は同じで、アプリを「完全に終了」できなくて、結局スワイプして「終了」させるUIが追加されたよね(Androidみたいに裏で動き続けるやつも含めて)。
Linuxユーザーがかつて、アップタイム(稼働時間)に異常なほど執着してたのを覚えてるよ。再起動なんて敗北の証みたいな空気だった。当時はWindowsが1日に1〜2回は再起動しなきゃいけないようなOSだったからね。最近は、週の終わりに仕事用のMacをオフにするのが好きかな。そうすると、物理的に一区切りついた感じがするから。裏でアプリが動き続けてるとかそういう問題じゃなくて、俺自身の気持ちの問題だね。
スマホに関しては、再起動は実際有効だね。スマホのマルウェアって、デバイスに感染しても永続化しないものもあるから、再起動でクリーンになることがある。少なくともNSAの助言を信じるならね:https://s3.documentcloud.org/documents/21018353/nsa-mobile-device-best-practices.pdf
Linux Mint Debian Editionで、毎日PCを再起動するcronジョブを設定してるよ。朝起きて「フレッシュ」な状態のPCに向かうのが好きなんだ。毎日再起動されると分かってるから、(1)重要な保存は怠らないようにする、(2)ブラウザのタブや適当なメモを一時的なものとして扱い、本当に大事なものだけブックマークする、という強制力にもなってる。昔Pivotal Labsでペアプログラミングをしてたときは、どのPCも「既知の正常なイメージから自動で再起動・復元」される設定になってて、それも気に入ってた。時間が経ってもゴミがたまらないし、PCを生産的な状態にするということに意図が持てるからね。おかげで自動化ルーチンを目標達成に使うようになったし、開いたタブとかに執着しなくなったよ。Let it goって感じだね。
具体的には、ブログとか公開作業を始めたい人なら、ログイン時にVSCodiumで作業フォルダを自動で開くようにしておけば、朝のコーヒーを飲みながらすぐ作業に取りかかれる。まあ、半分以上の時間はすぐ閉じちゃうんだけど、「デフォルト」として設定しておけば、やりたいことをやるまでのハードルが下がるよね。
sudo crontab -e -u root
#-----------------------------
# RESTART COMPUTER DAILY
#-----------------------------
00 04 * * * /usr/sbin/shutdown -r +5 "Rebooting in 5 minutes. Run 'shutdown -c' to cancel"
このご時世に、再起動なしでシステムをアップデートする手段がないのって変じゃない?Linuxにはライブカーネルパッチ(kexecやksplice)みたいなのがあるけど、なぜ2026年になっても、こういうライブシステムアップデートが当たり前の機能になってないんだろう?みんなアップデートとか再起動とか、ダウンタイムなんて嫌いでしょ?コアシステムのセキュリティアップデートの重要性は今やかつてないほど高いし、なんでこの問題が解決されないのか不思議で仕方ないよ。再起動して作業を中断させずにアップデートできたら最高だよね?
これに関してはUNIXの古い職人たちに賛成だな。清潔であることは過大評価されてる。人生も、何かを生み出す作業も、基本は汚いものだよ。稼働時間が長いということは、それだけ散らかるということ。稼働時間は長寿を意味するけど、人生において長寿以上に価値があるものなんてそうそうないんだ。
俺は毎晩デスクトップをシャットダウンしてる。付けっぱなしにする理由がないからね。作業を保存すれば、タブも全部維持されるし問題ないよ。
唯一の不満は、PCの時計がめちゃくちゃズレること。Windowsって気にしてないの?実害はないけど、チェックすると5秒以上ズレてて、本来あってはならないことだと思う。スマホは常に0.05秒以下の精度だし、Linuxも同じ。なんでWindowsだけダメなのかわからん。
もう25年くらいデスクトップPCを24時間稼働させてるよ。再起動が必要なとき以外はね。Windows 7がサポート終了する直前は、280日くらい稼働させてたのを覚えてる。UPS(無停電電源装置)があれば、瞬停やちょっとした停電から守れるからかなり助かるよ。
今はArch Linuxを使ってて、再起動から12日目。記録に挑戦してるわけじゃなくて、カーネル更新のついでに再起動してるだけ。tmuxを使っててターミナル中心のワークフローだから、1コマンドで数秒あれば、直前の状態まで全セッションを復活させられるしね。
もしかしたら俺が変なのかもしれないけど、「保存されてない作業があります!本当によろしいですか?」っていう警告を見るのが好きなんだよね。
再起動が嫌いな理由の一つは、Windowsがその警告を出すのに数秒かかることだよ。シャットダウンするまで見張ってるか、あるいは翌日PCに戻ってきて再起動されてなかったことに気づく羽目になる。だから今は shutdown /f で強制的にシャットダウン・再起動させて忘れるようにしてるよ。
Linux Mint Cinnamonを入れてるLenovo Legionは、起動に10秒もかからないよ。ほとんど電源切らないなんてこと、ありえない。なんでそんなことするの??
人間がやれば2秒で終わる作業をcronジョブでやるなんて馬鹿げてるよ。
ただ、Debian Netinstで組んでるホームラボのサーバーは別。こっちは何ヶ月も、あるいは何年も再起動せずに動かしっぱなしだね。
半世紀前のLinuxには、サーバーを何時間か動かしたら再起動しないとダメっていうバグがあったけど、今はもうそんなの過去の話。Windowsはページングメモリがいっぱいになって、動かせば動かすほどパフォーマンスがクソになるから再起動が必要になるんだよね。