オペレーティングシステムの進化に伴い、多くのオペレーティングシステムでは、バックグラウンドサービスの増加による負担が増大しています。これらのサービスはCPUリソースを大量に消費しないかもしれませんが、起動時間を大幅に延長し、RAM使用量を増加させる可能性があります。しかし、オープンソースのオペレーティングシステムでは、不要なサービスを無効化または削除することで、ユーザーが設定をカスタマイズできます。このガイドでは、不要なサービスを無効化することでLinuxの起動時間を最適化する方法について説明します。
サービスの負荷時間の評価
ほとんどのLinuxディストリビューションは、デフォルトのinitシステムとしてSystemdを搭載しています。Systemdには、起動プロセスの実行時間と各サービスの起動時間を分析できる便利なユーティリティが含まれています。ただし、一部のサービスは同時に読み込まれるため、全体の起動時間は個々のサービスの読み込み時間を単純に合計した値とはならない場合があることにご注意ください。
開始するには、ターミナルを開いて次のコマンドを入力します。
systemd-analyze

このコマンドは、Linux カーネルと主要なシステム サービスの初期化にかかる時間に関する情報を提供しますが、デスクトップ アニメーションやユーザー アプリケーションの読み込み時間は考慮しません。
グラフィカル インターフェイスの読み込みにかかる時間の詳細を知りたい場合は、次のコマンドを使用できます。
systemd-analyze critical-chain graphical.target

このコマンドは、グラフィカルターゲットに至るまでのサービスのシーケンスを表示します。これは便利ですが、このポイントに到達した後もバックグラウンドサービスの読み込みが残っている可能性があるため、技術的なマイルストーンを示すものに過ぎません。
最後に、このガイドに最も関連のあるコマンドは次のとおりです。
systemd-analyze blame

PAGE UPこのコマンドは、起動にかかる時間の長い順にサービスをリスト表示します。これにより、無効化するサービスを特定し、対象を絞り込むことができます。矢印キーまたはとキーを使ってリストをスクロールしPAGE DOWN、 を押してq終了します。
Systemctl で不要なサービスを無効にする
提供された分析から、snapd特に従来のハード ドライブではそのような遅延が著しく蓄積される可能性がある、読み込みが遅いサービスなどが見つかる場合があります。
たとえば、snapdコンテナ化されたアプリケーションの管理を担当するサービスが使用する必要がない場合は、次のコマンドを実行して無効にすることができます。
sudo systemctl disable snapd.service
無効にした後でも、snapdソケット アクティベーション機能により、無効状態に関係なく要求に応じて実行できるため、特定の状況下で起動が発生することがあります。
残っている依存関係をさらに調査するには、次のコマンドを実行します。
systemd-analyze blame | grep snap

このコマンドは、起動時間に影響を与え続けるスナップ関連のコンポーネントを強調表示します。
ソケットアクティブ化サービスの処理
を含む多くのサービスは、snapdソケットアクティベーションを採用しています。この設定により、サービスは現在無効になっている場合でも、通信要求を受信すると自動的に起動します。
snapd再起動後もこの動作が続く場合、この動作は多くの場合、snapd.socketや などの関連ユニットが原因ですsnapd.seeded.service。このような場合は、マスクを使用してサービスを完全にブロックすることをお勧めします。
sudo systemctl mask snapd.service sudo systemctl mask snapd.socket
マスクはサービスの起動を完全に防ぐ効果があります。ただし、特にシステム管理やアプリケーションのインストールにSnapを使用しているディストリビューションでは注意が必要です。
サービスの「無効化」と「マスキング」には重要な違いがあります。無効化は、systemdにサービスを自動的に起動しないように指示するだけですが、マスキングはさらに一歩進んで、サービスの実行を完全にブロックします。通常は無効化で十分ですが、無効化されているにもかかわらず再起動し続けるサービスの場合は、マスキングの方が適しています。
さらに、サービスを無効にする際には、安全にオフにできる次のような他の重要でないサービスも確認することを検討してください。
avahi-daemon.service ModemManager.service thermald.service
デスクトップ セットアップでは不要と判断されるサービスが、ラップトップやサーバーにとっては不可欠である可能性があるため、サービスを無効にする前に必ず徹底的な調査を行ってください。
結論
不要なサービスの数を減らすことで、特に従来のハードドライブを使用している場合、起動時間を大幅に短縮し、リソース割り当てを最適化できます。SSDベースのシステムでも、未使用のサービスを最小限に抑えることで、クリーンで効率的な運用環境を維持するのに役立ちます。
Stacerのようなグラフィカルアプリケーションはシステムサービスの管理に役立ちますが、機能が制限されたり、古くなったりする可能性があります。ほぼすべてのディストリビューションで一貫した制御を行うには、コマンドラインツールのsystemctlが最も信頼できるツールです。
コメントを残す