1

我正在使用 Rundeck 3.2.6-20200427 并设置了安装包的作业。

因为 rundeck 运行非交互式,所以我需要预设一些安装包的参数(在我的例子中是 iptables-persistent)。

在安装软件包之前,我运行该命令(现在只有这个参数,如果我能正常工作,我将使用更多参数):

echo iptables-persistent iptables-persistent/autosave_v4 boolean false | sudo debconf-set-selections

不幸的是,如果我运行 rundeck-command,我会收到该错误

09:09:08    debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
09:09:08    Failed: NonZeroResultCode: Remote command failed with exit status 1

我绝对确定没有其他任务或正在运行 dpkg 相关进程。

~$ lsof /var/cache/debconf/config.dat
~$

如果我尝试直接运行该命令,它可以正常工作。所以我不明白,为什么它不能与 rundeck 一起使用。

我在尝试安装软件包(Ubuntu Server 20.04)的新安装主机上进行了尝试。

这是我的工作定义:https ://pastebin.com/YSu545tX

4

2 回答 2

1

我发现在节点文件中,有一个错字,所以作业在错误的主机上运行,​​并且有一个 apt 进程,它被卡住了。

我在那里检查了该命令:

~$ sudo fuser -v /var/cache/debconf/config.dat
                     USER        PID ACCESS COMMAND
/var/cache/debconf/config.dat:
                     root       5563 F.... frontend

然后我终止了该进程并更正了节点文件。现在它起作用了。

于 2020-07-02T10:04:06.490 回答
0

我遇到了同样的问题,但 'fuser' 和 'lsof' 都没有显示。最后发现是 dpkg 锁定该文件,并使用

ps aux | grep dpkg

找到该进程并杀死它。

于 2021-12-14T05:09:06.493 回答