不知從什麼時候開始,個人電腦天天開機鏈接上網絡以後,不斷的在下載數據,狀態欄顯示網速達到每秒1到2兆。開始我還不太在乎,不事後來因爲帶寬所有被這種莫名其奧妙的下載佔據了,我連網頁都無否正常瀏覽了,因此我決定解決掉這個問題。下面記錄一下解決這個問題的過程。前端
首先我利用一款名爲nethogs
的實時網速監控程序查看是哪一個進程在佔據帶寬,發現佔據帶寬的正是系統的APT包管理工具,我想確定是系統在執行自動更新。殺掉這個進程後,我便去Google了一下如何關閉APT包管理工具的的自動更新。網上人們提供的解決方案大都一致:修改APT的配置文件。git
APT關於自動更新的配置文件位於"/etc/apt/apt.conf.d/20auto-upgrades", 將其中的github
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
更改成shell
APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Unattended-Upgrade "0";
其中安全
然而,並沒有卵用,次日開機後APT又執行自動更新了,更奇怪的是殺掉APT進程不久以後它會再一次運行。這時我才意識到一件事情,APT是不會自動把本身調入內存運行的,必定是另有進程調用了它。打開進程管理器以後,查看 APT 進程的依賴關係,發現果真它有一個名爲 packagekit
的父進程,我查了一下 packagekit
是一個旨在簡化Linux發行版安裝和更新軟件的系統,它爲不一樣的包管理工具提供了統一的前端,你能夠在不一樣的Linux發行版中使用它來管理軟件包。網絡
個人系統默認在開機時啓動packgekit服務,查看 packagekit
的啓動單元: cat /lib/systemd/system/packagekit.service
工具
[Unit] Description=PackageKit Daemon # PK does not know how to do anything on ostree-managed systems; # currently the design is to have dedicated daemons like # eos-updater and rpm-ostree, and gnome-software talks to those. ConditionPathExists=!/run/ostree-booted [Service] Type=dbus BusName=org.freedesktop.PackageKit User=root ExecStart=/usr/lib/packagekit/packagekitd
系統每次開機時都會啓動這個單元,執行 /usr/lib/packagekit/packagekitd
命令,而 packagekit
又將在運行期間調起APT下載須要更新的軟件包。es5
知道了這些問題天然也就解決了,禁用此服務: systemctl disable packagekit.service
.
或者乾脆刪除 /lib/systemd/system/
目錄下的 packagekit.service
(固然你也能夠把這個文件移動到別的地方去,之後用到時再放回來)命令行
在那以後,系統便再也沒有執行過自動更新了。
[附]code
nethohs是一個能按進程實時監控網絡的命令行工具,它能夠動態的展現某一時刻正在進行通訊的進程的網絡流量信息。
在 Debian/Ubuntu 下,使用apt-get install nethogs
安裝它。
或編譯安裝:
wget -c https://github.com/raboof/nethogs/archive/v0.8.5.tar.gz tar xf v0.8.5.tar.gz cd ./nethogs-0.8.5/ make && make install
若是編譯失敗須要安裝依賴庫
apt-get install libncurses5-dev libpcap-dev
使用
root@zsimline$ nethogs NetHogs version 0.8.5-2+b1 PID USER PROGRAM DEV SENT RECEIVED 2181 mxsyx /usr/share/code/code usb0 0.449 0.900 KB/sec 1598 mxsyx /usr/lib/chromium/chromium usb0 0.031 0.018 KB/sec ? root unknown TCP 0.000 0.000 KB/sec TOTAL 0.480 0.917 KB/se
指定網卡
root@zsimline$ nethogs wlan0 # 監聽wlan0 root@zsimline$ nethogs -a # 監聽全部網卡
指定刷新頻率 -d seconds (默認爲1)
root@zsimline$ nethogs -d 2
指定刷新次數 -c number (默認不限)
root@zsimline$ nethogs -c 10
交互模式
在進入 nethogs 以後,可使用以下的交互命令:
q: 退出 s: 按照發送流量排序 r: 按照流量排序 m: 修改網速單位 (KB, B, MB) and KB/s