Gtk-WARNING:调用禁止失败

当我遇到以下问题时,我试图使用gedit:

myPC@TM77:~$ sudo gedit /etc/pm/config.d/config (gedit:12512): IBUS-WARNING **: The owner of /home/myPC/.config/ibus/bus is not root! (gedit:12512): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files 

怎么了?

使用gedit以root身份编辑文件没有问题。 我经常这样做,并且总是会使用以下方法,这是使用具有超级用户权限的gedit的正确方法:

 gksudo gedit /etc/pm/config.d/config 

使用root权限编辑文件。

不知道为什么downvotes,因为这是唯一正确的答案,另一个说使用另一个编辑器。 所以我会告诉你并告诉你为什么。

你永远不应该使用普通的sudo来启动图形应用程序作为Root。 你应该使用gksudo(Kubuntu上的kdesudo)来运行这样的程序。 gksudo设置HOME = ~root,并将.Xauthority复制到tmp目录。 https://help.ubuntu.com/community/RootSudo#Graphical_sudo

这两条消息都是警告

IBUS- 警告 **:/home/myPC/.config/ibus/bus的所有者不是root用户!

这是因为您使用sudo调用Gedit。 这种情况可能发生。 您可能想要使用nanovim或任何其他非GUI编辑器而不是Gedit。

Gtk- 警告 **:调用禁止失败:GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:任何.service文件都没有提供名称org.gnome.SessionManager

GD正在尝试访问org.gnome.SessionManager dbus指令,但未提供该指令。 实际上,在正常安装中不存在该指令, 可以安全地忽略该消息。

我也遇到过这种情况,发现重新安装gedit修复了这个问题:

 sudo apt-get purge gedit sudo apt-get install gedit