dconf命令写在shell脚本中,然后脚本配置在crontab中执行报错

10 阅读1分钟

使用的系统

➜  ~ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 22
Release:	22
Codename:	wilma

dconf配置在crontab,执行时候报错如下

写在脚本中的dconf命令

dconf reset -f /com/premiumsoft/navicat-premium/

然后错误如下

error: Cannot autolaunch D-Bus without X11 $DISPLAY

错误解决

要处理该错误我们需要了解一下dconf的功能作用了

dconf功能

Dconf 是 GNOME 桌面环境使用的低级配置系统。它基本上是一个数据库,其中各种配置与其值一起存储为键。可以使用 dconf 实用程序或使用 dconf-editor 图形工具检查、更改或转储数据库中的密钥。

查看数据库中的数据

使用dconf list命令列出数据库中的键

➜  ~ dconf list /
com/
org/
system/


➜  ~ dconf list /com/
linuxmint/
premiumsoft/


➜  ~ dconf list /com/premiumsoft/
navicat-premium/


➜  ~ dconf list /com/premiumsoft/navicat-premium/
1D012524C9FA59E826577FAC659EFD34
B1DFDFFF3BA1EC80CB83514025BED8D6
last-check-time

使用dconf read 读取数据

➜  ~ dconf read /com/premiumsoft/navicat-premium/last-check-time 
int64 1735893186

清空数据

使用dconf reset -f清空数据

➜  ~ dconf reset -f /com/premiumsoft/navicat-premium/
➜  ~ dconf list /com/premiumsoft/navicat-premium/ 

问题分析

根据前面对dconf的说明,我们知道因为dconf命令需要一个运行X窗口系统的环境,而crontab任务默认是在没有X窗口系统的情况下运行的,因此无法执行dconf命令

参考文章