c++ - 让我的 GTK 应用程序在 Linux 上启动时启动

标签 c++ gtk startup

我有一个包含一些 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/

相关文章:

path - 不指向有效的 .jar

python - 为什么我的 Python 脚本在我的 Raspberry Pi 启动时通过将命令添加到/etc/profile 来尝试在后台运行两次?

C++ 全局变量初始化顺序

c++ - 链接到 pthreads 的原因导致程序行为发生变化?

c++ - 在 ClassB 中使用 ClassA 的枚举

c++ - gtk - 从文件加载时图像不显示

c - 如何对齐GtkTable项目?

python - 使用 (Py)GTK 在调整大小时自动缩放图像

c++ - openGL/GLSL : bloom/blur, 渲染到 FBO

java - @Startup @Singleton Java 注释不起作用(TomEE 8 Web Profile + CentOS 7)