我有一个包含一些 GTK 代码的 C++ 可执行文件。我希望这个应用程序在我的机器启动时启动(作为 root)。
我尝试使用 init 脚本(当我从我的用户 session 中使用它时它工作得很好),但是查看我的应用程序的日志文件我发现最新记录的行是在调用 Gtk 之前::Application::create()
所以初始化 GTK 似乎太早了。
如何在用户 session 打开后启动我的应用程序,以便 GTK 初始化不会失败?
最佳答案
为您的应用程序创建一个 .desktop 文件,并将其放入每个用户的 /etc/xdg/autostart/
,或放入 $HOME/.config/autostart/
当前用户。
如果您希望普通用户以root身份加载该应用程序,您可以选择使用gksu或其他工具来授权权限。
或者,您可以查看网络管理器是如何设计的。它在系统启动时将网络管理器模块作为初始化脚本初始化,并在用户 session 加载时加载 nm-applet,这是普通用户的 GUI。因此,桌面用户可以在所有桌面环境(如 Gnome、KDEE、xfce...)上管理网络管理器。
关于c++ - 让我的 GTK 应用程序在 Linux 上启动时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199571/