Debian システムでの自動パッケージ更新の問題を解決する方法

Debian システムでの自動パッケージ更新の問題を解決する方法

いつから始まったのかはわかりませんが、コンピュータの電源を入れてインターネットに接続するたびに、データのダウンロードが続き、ステータス バーにはネットワーク速度が 1 ~ 2 メガビット/秒に達したことが表示されます。最初はあまり気にしていなかったのですが、後になってこの不可解なダウンロードによって帯域幅が完全に占有されてしまい、Web を正常に閲覧することさえできなくなったため、この問題を解決することにしました。以下は、この問題を解決する過程の記録です。

まず、nethogs というリアルタイム ネットワーク速度監視プログラムを使用して、どのプロセスが帯域幅を占有しているかを確認しました。帯域幅を占有していたのはシステムの APT パッケージ管理ツールであることがわかりました。自動更新を実行しているシステムが原因だと思いました。このプロセスを終了した後、APT パッケージ管理ツールの自動更新をオフにする方法を Google で調べました。インターネット上で人々によって提供される解決策のほとんどは同じです。APT 構成ファイルを変更します。

APTの自動更新の設定ファイルは「/etc/apt/apt.conf.d/20auto-upgrades」にあります。

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

変更する

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

  • APT::Periodic::Update-Package-Lists; apt-get update を 1 日に 1 回自動的に実行します。1 は有効、0 は無効を意味します。
  • APT::Periodic::Unattended-Upgrade; unattended-upgrade セキュリティ アップグレード スクリプトを 1 日に 1 回実行します。1 は有効、0 は無効を意味します。

しかし、それは役に立ちませんでした。翌日、コンピュータの電源を入れたあと、APT は自動的に再度更新されました。さらに奇妙だったのは、APT プロセスを終了した直後に、再度実行されたことです。そのとき、私はあることに気づきました。APT は実行するために自動的にメモリにロードされるわけではなく、別のプロセスがそれを呼び出す必要があるということです。プロセス マネージャーを開いた後、APT プロセスの依存関係を確認したところ、packagekit という親プロセスが実際に存在していました。確認してみると、packagekit は Linux ディストリビューションでのソフトウェアのインストールと更新を簡素化するために設計されたシステムであることがわかりました。これは、さまざまなパッケージ管理ツールに統一されたフロント エンドを提供するもので、さまざまな Linux ディストリビューションのソフトウェア パッケージを管理するために使用できます。

私のシステムは、起動時にデフォルトで packagekit サービスを開始します。packagekit の起動ユニットを確認します。
cat /lib/systemd/system/packagekit.service

[ユニット]
説明=PackageKitデーモン
# PK は ostree で管理されたシステム上で何も実行できません。
# 現在の設計では、次のような専用デーモンを用意しています
# eos-updater および rpm-ostree、そして gnome-software はそれらと通信します。
ConditionPathExists=!/run/ostree-booted

[サービス]
タイプ=dbus
バス名=org.freedesktop.PackageKit
ユーザー=root
ExecStart=/usr/lib/packagekit/packagekitd

このユニットは、システムが起動するたびに起動され、/usr/lib/packagekit/packagekitd コマンドが実行されます。操作中、packagekit は APT を呼び出して、更新が必要なソフトウェア パッケージをダウンロードします。

これらの問題がわかれば、自然に解決されます。このサービスを無効にします: systemctl enable packagekit.service。

または、/lib/systemd/system/ ディレクトリ内の packagekit.service を削除するだけです (もちろん、このファイルを別の場所に移動し、後で必要になったときに元に戻すこともできます)。

その後、システムは自動更新を再度実行することはありませんでした。

[付録]

nethohs は、プロセスごとにネットワークをリアルタイムに監視できるコマンドライン ツールです。特定の瞬間に通信しているプロセスのネットワーク トラフィック情報を動的に表示できます。
Debian/Ubuntu では、apt-get install nethogs を使用してインストールします。
またはコンパイルしてインストールします:

https://github.com/raboof/nethogs/archive/v0.8.5.tar.gz を実行します。
tar xf v0.8.5.tar.gz 
cd ./nethogs-0.8.5/
作成 && インストール

コンパイルに失敗した場合は、依存ライブラリをインストールする必要があります。

apt-get で libncurses5-dev と libpcap-dev をインストールします。

使用

root@zsimline$ nethogs
NetHogs バージョン 0.8.5-2+b1
PID ユーザー プログラム 開発者 送信 受信 
2181 mxsyx /usr/share/code/code usb0 0.449 0.900 KB/秒
1598 mxsyx /usr/lib/chromium/chromium usb0 0.031 0.018 KB/秒
? ルート不明 TCP 0.000 0.000 KB/秒

 合計 0.480 0.917 KB/秒

ネットワークカードを指定する

root@zsimline$ nethogs wlan0 #wlan0 を監視
root@zsimline$ nethogs -a # すべてのネットワークカードを監視

リフレッシュレートを秒単位で指定します(デフォルトは1)

ルート@zsimline$ nethogs -d 2

更新回数を指定する -c 数値 (デフォルトでは無制限)

ルート@zsimline$ nethogs -c 10

インタラクティブモード

nethogs を入力した後、次の対話型コマンドを使用できます。

q: 終了
s: 送信トラフィックで並べ替え
r: トラフィック順に並べ替え
m: ネットワーク速度の単位(KB、B、MB)とKB/sを変更する

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Debian 9 システムに MySQL データベースをインストールする方法
  • Debian 9 システムでデフォルトのネットワーク カードを eth0 に変更する方法
  • Debian システムで PHP プログラム用の Nginx サーバーを構成するための基本的なチュートリアル
  • Debian システムで LNMP を設定するためのチュートリアル
  • Ubuntu または Debian を実行しているサーバーから MySQL をアンインストールする方法
  • Linux サーバー システム CentOS、uBuntu、Gentoo、FreeBSD、Debian の比較

<<:  Windows 環境での MYSQL5.7 設定ファイルの場所のグラフィカル分析

>>:  vuex での Getter の使用法の詳細な説明

推薦する

nginx が複数のプロキシ層を通過して実際の送信元 IP を取得するプロセスの詳細な説明

質問Nginx は $remote_addr を実際の IP アドレスとして受け取りますが、実際には...

仮想スクロールを簡単に実装するためのVueサンプルコード

目次序文ローリング原理成し遂げるソースコード参照する序文モバイル Web ページの日常的な開発では、...

HTML の ReadOnly と Enabled の違い

ReadOnly 属性を持つ TextBox は、クライアント上で次のマークアップとして表示されます...

CSS の子要素の Z インデックスと親要素の兄弟ノードの階層問題を解決する

1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...

CocosCreator ユニバーサルフレームワークデザインネットワーク

目次序文Websocketの使用Websocketオブジェクトの構築Websocket ステータスW...

960 グリッドシステムの基本原理と使用法

もちろん、CSS はフレームワークを必要とするほど高度ではないと考えて、反対の意見を持つ人もたくさん...

ユーザーエクスペリエンスの構築

<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...

1 つ以上の Linux インスタンスから SSH キー ペアのバインドを解除します。

キーペアの分離1 つ以上の Linux インスタンスから SSH キー ペアのバインドを解除します。...

OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

ここ数日、ウェブサイトを初めて開いたときにアクセスが非常に遅いのですが、その後はページが正常に開きま...

複数サーバーの負荷分散を実現するためのNginx構成

Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...

HTML テーブル マークアップ チュートリアル (2): テーブル境界属性 BORDER

デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...

Vue ベースの要素ボタン権限実装ソリューション

背景要件: ERP システムに「ボタン権限制御」機能を追加する必要があり、権限の制御粒度をボタン レ...

EclipseでTomcatを作成する原理の詳細な説明

ローカルEclipse上にTomcatサーバーを作成する場合、 tomcaインストールディレクトリの...

Linux ホスト名設定の詳細な紹介

目次1. Linuxホスト名を設定するクライアントホストを構成するサーバーホストを構成する2. ホス...

Centos7環境でMySQL 5.6のインスタンスを複数作成する方法の詳細な説明

この記事では、CentOS 7 環境で MySQL 5.6 の複数のインスタンスを作成する方法につい...