我有一个包含一些GTK代码的C ++可执行文件。我希望这个应用程序在我的机器启动时启动(以root身份)。
我尝试使用init脚本(当我在用户会话中使用它时工作正常),但是看看我的应用程序的日志文件,我看到最新记录的行在调用{{1}之前所以它似乎太早了初始化GTK。
如何在用户会话打开后启动应用程序,以便GTK初始化不会失败?
答案 0 :(得分:2)
创建应用的.desktop文件,并为每个用户将其设置为/etc/xdg/autostart/
,或为当前用户设置为$HOME/.config/autostart/
。
如果您想以普通用户的root身份加载该应用程序,您可以选择使用gksu或其他工具来授权特权。
或者,您可以看到网络管理器的设计方式。它在系统启动时作为init-script进入网络管理器模块,并在用户会话加载时加载nm-applet,这是普通用户的GUI。因此,桌面用户可以在所有桌面环境(如Gnome,KDEE,xfce ......)上管理网络管理器。