从 raring 升级后,我在 trusty 上运行了很棒的窗口管理器。我的桌面环境故意没有运行所有的 Gnome / Freedesktop 守护进程——我不想要它们。
当我gedit从这样的终端执行时:
gedit file
Run Code Online (Sandbox Code Playgroud)
每当我按回车键或保存或在其他各种情况下,它都会在我的终端上输出这样的消息:
(gedit:5700): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
Run Code Online (Sandbox Code Playgroud)
我明白这个警告的意思,我决定这对我来说无关紧要。
我怎样才能关闭这种警告?我所说的“关闭”并不是指任何这些或类似的解决方法:
/dev/null/dev/null/dev/null这些变通方法是不可接受的,因为它们必须单独应用于每个 Gnome 应用程序 — gedit 并不是唯一喜欢弄乱终端的应用程序。
Zenity 总是在终端中显示警告让我很恼火:
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Run Code Online (Sandbox Code Playgroud)
显然我不是唯一一个:
几乎所有的答案都告诉您通过附加2>/dev/null到命令的末尾来改变调用 zenity 的方式。我不想对我已经编写的所有代码执行此操作,也不想在以后编写的代码中记住这一点。
有没有更简单的方法让这条烦人的消息消失?