Ubuntu更新系统进程的要点
在 Ubuntu 中,“进程”本身没有版本,所谓“更新系统进程”通常是指:更新提供这些进程的软件包,或重启相关服务/系统以加载新版本。若你遇到更新时某个进程卡住,还需要能识别并安全结束该进程。
一、标准更新流程
- 更新软件包索引并升级已安装包:
- 命令:sudo apt update && sudo apt upgrade -y
- 处理依赖变化或需要替换包时:sudo apt full-upgrade -y
- 仅查看可更新内容:apt list --upgradeable
- 清理无用依赖:sudo apt autoremove
- 图形界面方式:打开Software Updater,检查并安装更新。
二、升级到新版本或启用无人值守更新
- 升级到新的 Ubuntu 发行版:sudo do-release-upgrade
- 无人值守自动更新由以下定时器与脚本负责:
- 定时器:apt-daily.timer、apt-daily-upgrade.timer
- 服务:apt-daily.service、apt-daily-upgrade.service
- 脚本:/usr/lib/apt/apt.systemd.daily
- 默认触发时间:apt-daily.timer 每天 06:00 与 18:00;apt-daily-upgrade.service 每天 06:00
- 关闭自动更新(示例):
- 停止并禁用定时器与服务:
- sudo systemctl stop apt-daily.service apt-daily.timer apt-daily-upgrade.service apt-daily-upgrade.timer
- sudo systemctl disable apt-daily.service apt-daily.timer apt-daily-upgrade.service apt-daily-upgrade.timer
- 或编辑配置文件,将自动更新关闭:
- /etc/apt/apt.conf.d/10periodic 与 /etc/apt/apt.conf.d/20auto-upgrades
- 把 APT::Periodic::Update-Package-Lists 与 APT::Periodic::Unattended-Upgrade 设为 “0”。
三、更新时进程卡住或无法获取锁的处理
- 识别占用更新的进程:
- 查看相关进程:ps -e | grep apt 或 ps aux | grep apt
- 结束指定进程:sudo kill ;批量结束:sudo killall apt apt-get synaptic
- 若更新中断导致锁文件残留,先尝试配置完成:sudo dpkg --configure -a
- 谨慎删除锁文件(仅在确认无其他 APT 进程运行时):
- sudo rm /var/lib/apt/lists/lock
- sudo rm /var/lib/dpkg/lock
- sudo rm /var/cache/apt/archives/lock
- 再次尝试更新:sudo apt update && sudo apt upgrade。
四、更新后让进程生效与常用监控命令
- 让更新后的进程生效:
- 重启单个服务:例如 sudo systemctl restart nginx
- 重启系统:sudo reboot
- 常用进程查看与监控:
- 实时资源占用:top(交互中可按 Shift+P 按 CPU、Shift+M 按内存排序)
- 更友好的界面:htop(如未安装:sudo apt install htop)