在 Ubuntu 16.04.3 LTS 服务器上,我运行一些进程监视器,但我也手动运行 apt 以及无人值守升级以进行安全更新。
这有时会导致监视器报告并执行在 apt 升级期间被 apt 停止的程序。
有没有办法在无人值守升级/apt 启动升级时运行命令(以停止监视器),并在无人值守升级/apt 完成时再次运行命令(以重新启动监视器)?
我发现APT::Update::Pre-Invoke
并APT::Update::Post-Invoke
挂钩但是 apt更新步骤不是问题,而且apt本身似乎没有任何pre/post升级钩子。
答案1
您可以使用三个钩子来实现此目的:
DPkg::Pre-Invoke
apt
在一次调用中的所有包操作序列之前运行一次;DPkg::Pre-Install-Pkgs
也在包操作序列之前、挂钩之后运行一次Pre-Invoke
,并带有将安装的所有包的列表;DPkg::Post-Invoke
在包操作序列之后运行一次。
该文档不是很清楚(请阅读man apt.conf
虽然),但是阅读源代码支持以上观点。指定钩子也证实了这一点(例如,这就是apt-listbugs
工作原理)。