使根脚本向用户显示 zenity 对话框

使根脚本向用户显示 zenity 对话框

我按照说明进行操作这里设置自动备份,这样每当我将某个外部驱动器连接到计算机时,就会自动开始备份。

这可行,但此外我想zenity向用户显示两个对话框:

  • 在运行备份之前询问用户是否确实想要进行备份(或者只是使用驱动器)
  • 备份完成时询问用户是否要安全删除驱动器(或使用驱动器)

现在我的问题是 borg 站点的备份脚本作为root.为了能够向用户显示对话框,我添加了--display=:0.0zenity 命令并将其添加到我的~/.bashrc

xhost local:$USER > /dev/null

这种方法的问题是:它只有在终端(即 Gnome 应用程序)启动后才有效。如果我只是登录 Gnome 并插入驱动器,则不会出现任何对话框,并且我可以看到sudo journalctl脚本因以下错误而失败:

zenity[2731]: cannot open display: :0.0

但如果我先打开一个终端,它就可以工作。我还尝试添加xhost以下命令/etc/profile.d/,但即使启动终端也不起作用。

所以我的问题是:xhost即使用户没有打开终端应用程序,我需要在哪里放置命令才能使其工作?或者说怎样才能做到呢?

答案1

我在这上面浪费了太多时间,最终将 Gnome 终端添加到自动启动,因此~/.bashrc读取了该文件:

cd ~/.config/autostart
ln -s /usr/share/applications/org.gnome.Terminal.desktop

这不是一个优雅的解决方案,但至少现在在外部驱动器上创建备份很简单。

相关内容