我需要在脚本中安装应用程序之前检查 dpkg 锁

我需要在脚本中安装应用程序之前检查 dpkg 锁

我编写的用于安装一堆应用程序的脚本存在问题,基本上,当它循环遍历要安装的应用程序名称数组时,它会通过执行以下操作来检查它们:

dpkg -l | grep -q $i

并根据 $? 安装或跳过应用程序。问题是由于 dpkg 锁定导致一些项目失败,几乎整个列表都有效,只有六个项目失败,但如果您再次运行脚本,它们就会有效。

是否可以等待 dpkg 完成后再运行“apt-get install”?

现在我在两行之间添加了“sleep 0.5”,这虽然解决了这个问题,但显然比较丑陋和缓慢。

谢谢,Noki

答案1

要识别使用文件或套接字的进程,您可以使用fuser命令(man fuser有关详细信息,请参阅)。如果是dpkg,您可以使用以下命令以 root 身份检查锁:

fuser /var/lib/dpkg/lock

相关内容