我经常无法在我的服务器上运行apt-get安装。 像那样:
$ sudo apt-get install tmux E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/),is another process using it?
几乎每天都会发生很多事情。 每当我试图找出谁是用lsof命令locking它的时候,我已经太迟了,锁已经消失了。 真的很奇怪。
是否有一个技巧,我怎么可以logging超过24小时谁还在locking/var/lib/dpkg/lock ? /var/lib/dpkg/lock ?
Debian:列出所有用户安装的软件包?
克隆Debian / Ubuntu安装
如何在Ubuntu中安装“make”?
在Linux shell脚本中处理input确认
如何在Ubuntu 16.10上安装Python 3.6的pip?
Docker错误:无法find包git
Docker Machine默认虚拟机上的软件包pipe理器?
为什么Ubuntu或APT不使用rsync进行更新?
不能删除,清除,从debian unistall mongodb
Python显示所有安装的软件包
我认为有多种解决方案。
1:写一个简单的脚本,例如while sleep 1; do lsof -n|grep /var/lib/dpkg/lock >>/var/log/dpkglocktmp.log; done while sleep 1; do lsof -n|grep /var/lib/dpkg/lock >>/var/log/dpkglocktmp.log; done while sleep 1; do lsof -n|grep /var/lib/dpkg/lock >>/var/log/dpkglocktmp.log; done 。 这很简单,但不是很漂亮,但作为一个短时间的错误跟踪,这对我来说没关系。 您将获得日志文件中的进程列表。
延伸: while sleep 1; do lsof -n|grep /var/lib/dpkg/lock; done|tee --append /var/log/dpkglocktmp.log while sleep 1; do lsof -n|grep /var/lib/dpkg/lock; done|tee --append /var/log/dpkglocktmp.log while sleep 1; do lsof -n|grep /var/lib/dpkg/lock; done|tee --append /var/log/dpkglocktmp.log将同时写入控制台并进入日志文件。 如果你不能保持你的SSH连接活着,你可以在屏幕上运行。
2:Linux内核具有inotify功能,使得进程可以在正在监视的文件上发生事件。 它周围有很多工具,最着名的是incron 。 它使您能够在文件事件的情况下调用脚本。 可能还有更复杂的工具,针对与您类似的问题。
我遇到了最相似的问题,因为apt update / install问我一些东西,我忘记了,后来试着在另一个ssh会话中运行另一个apt。
你可以做一个运行的cron作业:
lsof | grep /var/lib/dpkg/lock >> whodunit.txt
并试图赶上他们的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。