解决Debina系统自动更新软件包的问题
不知从何时开始,我的电脑每天开机连接上网络之后,不断的在下载数据,状态栏显示网速达到每秒1到2兆。开始我还不太在意,不过后来由于带宽全部被这种莫名其奥妙的下载占据了,我连网页都无否正常浏览了,所以我决定解决掉这个问题。下面记录一下解决这个问题的过程。
首先我利用一款名为nethogs
的实时网速监控程序查看是哪个进程在占据带宽,发现占据带宽的正是系统的APT包管理工具,我想肯定是系统在执行自动更新。杀掉这个进程后,我便去Google了一下如何关闭APT包管理工具的的自动更新。网上人们提供的解决方案大都一致:修改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 表示启用,0 表示禁用。
- APT::Periodic::Unattended-Upgrade; 每一天运行一次 unattended-upgrade 安全升级脚本,1 表示启用,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下载需要更新的软件包。
知道了这些问题自然也就解决了,禁用此服务: systemctl disable packagekit.service
.
或者干脆删除 /lib/systemd/system/
目录下的 packagekit.service
(当然你也可以把这个文件移动到别的地方去,以后用到时再放回来)
在那之后,系统便再也没有执行过自动更新了。
[附]
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
解决Debina系统自动更新软件包的问题的更多相关文章
- ubuntu18关闭系统自动更新
ubuntu18.04关闭系统自动更新有两个方法:1.修改配置文件 修改配置文件/etc/apt/apt.conf.d/10periodic#0是关闭,1是开启,将所有值改为0vi etc/apt/a ...
- 解析大型.NET ERP系统 自动更新
C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新.工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现. ...
- iphone 屏蔽系统自动更新,消除设置上的小红点
苹果ios系统的更新频率大家应该都知道,一般来说1个月就会来次更新.这一点让很多人讨厌.主要原因还是iPhone会自动下载更新包,然后一直不停地提示你是否安装更新,问题是我们还找不到关闭提醒和关闭自动 ...
- win10系统如何关掉系统自动更新
越来越多的电脑使用者都在使用Windows10系统,尽管系统是一代代更新的,但难免有槽点,Windows10系统也不例外,最大的槽点就是“自动更新”的功能.当然,“自动更新”的功能也是相当有用处的. ...
- ios9关闭系统自动更新
链接:https://www.zhihu.com/question/37297197/answer/104363172 https://www.zhihu.com/question/37297197/ ...
- CentOS7安全设置 yum-cron系统自动更新,firewalld防火墙简单使用
PermitRootLogin nosystemctl restart sshd.service; yum -y install firewalld; systemctl start firewall ...
- 解决SimpleCursorAdapter不能自动更新的问题
假设场景是这样的:你使用SimpleCursorAdapter显示数据,并监听数据的变化:在数据发生变化的时候,调用cursor的requery,期待UI显示也跟着变化. 但是,你可能会发现,UI并没 ...
- redis对象存储(适用于订单系统自动更新)
启动:redis-server.exe redis.windows.conf连接:redis-cli.exe -h 127.0.0.1 -p 6379 #插入取消的订单列表与时间: redis 127 ...
- 怎样关闭WIN7系统的自动更新
百度经验 > 游戏/数码 > 电脑 > 电脑软件 怎样关闭WIN7系统的自动更新 听语音 | 浏览:108460 | 更新:2012-07-24 18:03 | 标签:win7 1 ...
随机推荐
- JAVA中锁的解决方案
前言 在上一节中,我们给大家介绍了什么是锁,以及锁的使用场景,我相信大家对锁的定义,以及锁的重要性都有了比较清晰的认识.在这一节中,我们会给大家继续做深入的介绍,介绍JAVA为我们提供的不同种类的锁. ...
- 解决node.js使用fs读取文件出错
今天配接口,使用fs模块读取json出现了错误'no such file or directory',然后经查终于解决,特此记录. 使用nodejs的fs模块读取文件时习惯用相对路径,但是运行的时 ...
- 第三十八章 POSIX线程(二)
线程属性 初始化与销毁属性 int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pthread_attr_t * ...
- C++学习笔记12_各种文件和引入
1. 编译过程 预处理->编译->汇编->链接->.exe 预处理: ①将所有的“#define”删除,并且展开所有的宏定义 ②处理所有的条件编译指令,如:“#if”.“#if ...
- [考试反思]0921csp-s模拟测试49:困顿
太弱.还是太弱. 拉不开分差,离第一机房分数线估计还是300多分. 但是,还是要骂:XX出题人. 部分分非常少且没有意义,T1基本只有0/纯暴力20/100三个档, T2正解是n2但是n3一分不给,还 ...
- NOIP模拟 4
T1没开longlong T2忘了有向... T3是个好题,可以说将复杂度从N^2优化到NlogN是一个质的飞跃 考虑分治(要想出log可不就要分治么!(segtree也行 但我不会) 对于一个分治区 ...
- 《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU
你知道的越多,你不知道的越多 点赞再看,养成习惯 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联 ...
- VirtualBox6安装CentOS7设置静态IP
安装virtualbox后安装centos7, 这里就不在赘述了, 网上有很多教程 先关闭虚拟机, 按照如下设置配置网络 这里需要使用双网卡, 我们在开启第二个网卡, 如下所示 之后开启虚拟机, 进行 ...
- Promise对象及它在js中的执行顺序
关于Promise对象的学习及它的执行顺序 学习阮一峰老师的ES6入门后的记录 1.promise的定义 promise是一个对象,通常包裹着一个异步操作,promise对象提供一些接口的方法,返回一 ...
- day2-day3基本数据类型专区
一.基本数据类型 1.字符串 str (用''or“”表示) 字符串中每个组成部分为字符,python中只要是用引号引起来的都叫字符串 ---特征: 加法 n1 = "alex" ...