我有一个 cron 作业,它会生成一些 .pdb 文件,我想在下次同步时自动将它们排入安装队列。不幸的是,我无法让 gpilot-install-file 在 cron 作业中工作。它需要显示(为什么?),所以我给了它一个“--display=:0.0”选项。然后它抱怨它无法获取 PDA 列表,所以我给了它一个“--pilot=MyPDA”选项。
/usr/bin/gpilot-install-file --later --display=:0.0 --pilot=MyPDA myfile.pdb
现在我明白了:
(gpilot-install-file:4959): gpilotd-CRITICAL **: gnome_pilot_client_install_file: 断言 `self->gpilotddaemon!=NULL' 失败
有没有办法让它工作,或者是否有其他方法可以通过 cron 作业将文件放入 gnome-pilot 的安装队列?
答案1
“gpilotd”守护进程是否正在运行?似乎仍缺少一些gpilot-install-file
需要执行其工作的环境变量。将env
桌面终端中的命令输出与env
cron 中的运行进行比较。(您已经确定了一个必需的差异:“DISPLAY”变量。)
有时需要 D-Bus 服务环境(“DBUS_SESSION_BUS_ADDRESS”)等。尝试定义一些东西,直到它正常工作。要从正在运行的桌面会话中提取这些变量,您可以从中读取它们/proc
:
xargs -0 -n1 < /proc/$(pidof gnome-session)/environ | grep what-you-need