我可以终止 apt.system.daily 来修复 apt install 命令吗?

我可以终止 apt.system.daily 来修复 apt install 命令吗?

当我尝试使用 apt 或 apt-get 安装任何东西(Ubuntu 16.04)时,我得到了这个:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

这是输出ps aux | grep apt

root     23906  0.0  0.0   4504   784 ?        Ss   Feb20   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root     23912  0.0  0.0   4504  1640 ?        S    Feb20   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install

但这些是子流程:

root     23906  0.0  0.0   4504   784 ?        Ss   Feb20   0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root     23912  0.0  0.0   4504  1640 ?        S    Feb20   0:00  \_ /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
root     23943  0.1  3.7 140052 77424 ?        S    Feb20  56:54      \_ /usr/bin/python3 /usr/bin/unattended-upgrade
root     23948  0.0  0.0      0     0 ?        Z    Feb20   0:00          \_ [dpkg-deb] <defunct>
root     23965  0.0  2.9 140632 59508 ?        S    Feb20  31:44          \_ /usr/bin/python3 /usr/bin/unattended-upgrade
root     24051  0.0  0.2  19196  4632 pts/0    Ss+  Feb20   0:00              \_ /usr/bin/dpkg --status-fd 10 --configure redis-server:amd64 linux-modules-4.4.0-1102-aws:amd64 linux-image-4.4.0-1102-aws:amd64 linux-image-aws:amd64 linux-a
root     24052  0.0  0.0   4504  1660 pts/0    S+   Feb20   0:00                  \_ /bin/sh /var/lib/dpkg/info/redis-server.postinst configure
root     24094  0.0  0.0   4504  1696 pts/0    S+   Feb20   0:00                      \_ /bin/sh /usr/sbin/invoke-rc.d redis-server start
root     24138  0.0  0.0  24888  1340 pts/0    S+   Feb20   0:11                          \_ systemctl start redis-server.service

我相信 ps aux | grep apt 中的 PID 正在保留我的 apt install 命令,但我不想在子进程中终止 redis-server PID 和所有其他 PID,即使 systemctl status 表明 redis 和 redis server 状态都已停用(stop-post)。上次有人尝试安装任何东西时是 redis-server

答案1

这些是无人值守的升级,获取的锁与通常的锁不同apt-get

无人值守升级完成后,安装的简单方法是等待其锁定完成flockflock将等到锁定被释放,然后按顺序执行updateupgrade然后install

 flock /var/lib/apt/daily_lock \
  apt-get -y update \
  && apt-get -y upgrade \
  && apt-get -y install \
    zip \
    unzip

参考:

答案2

1:使用以下命令检查已安装的 apt 服务:systemctl list-units | grep apt

禁用正在运行的 apt 服务:systemctl disable apt*。例如 sudo systemctl disable apt-daily.service

参考一个非常干净的过程: https://askubuntu.com/questions/1038923/do-i-really-need-apt-daily-service-and-apt-daily-upgrade-service

2:您可能还想将 /etc/apt/apt.conf.d/10periodic 中 apt.conf 文件的某些配置值设置为零或 false

参考: https://askubuntu.com/questions/1167314/disable-automatic-updates-ubuntu-18-04

您很可能会擅长处理上面的#1。

希望这可以帮助

谢谢

相关内容