我有一个生成GTK +对话框的应用程序。从终端运行时,它可以正常工作。问题是我的应用程序作为守护程序运行,并由/etc/init.d
中的脚本启动我认为使用init脚本启动的所有内容都放在tty1中,其中没有GNOME可用(它位于tty7)。我不知道这是否正确,但我该如何解决这个问题?
提前谢谢!
答案 0 :(得分:2)
我很确定守护进程应该从不包含GUI内容......这属于与守护进程通信的客户端应用程序。
答案 1 :(得分:1)
嗯,问题不在于tty,问题是你的X服务器里面设置了$ DISPLAY,所以Gtk +知道在哪里显示你的窗口。在一个tty(即在一个不是从X内部运行的脚本中),它没有设置,所以Gtk +不知道在哪里显示窗口。 您也不能假设X在特定显示器上运行,或者甚至X可用,这就是为什么您永远不应该有守护程序显示任何的原因。 一个好的守护进程不期望用户输入,不显示任何内容并将其所有输出重定向到日志文件或syslog。