在启动时运行 GUI 程序

在启动时运行 GUI 程序

我使用的是 Ubuntu 14.04。我写了一个名为审判的小脚本。脚本内容如下:

 #!/bin/sh
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin     
sh -c firefox

我将脚本复制到/etc/init.d,修改权限使用chmod +x trial并使用update-rc.d trial defaults。该文件建立了链接,但是当我重新启动机器时。它没有运行火狐浏览器。我尝试了 cron @reboot 但没有成功。我也尝试了 rc.local 再次失败。

答案1

该目录/etc/init.d/包含基本上启动、停止、重新启动守护进程(系统服务)的系统脚本。它是“System V 初始化”方法 (SysVinit),包含 init 程序(内核完成加载后运行的第一个进程)。 (编辑 2015 年 7 月 2 日:许多 Linux 系统最近已切换到systemdinit 系统。)

但是,Firefox 是一个图形 Web 浏览器。因此,它需要启动窗口服务器(X-Windows)和窗口管理器;并且,您需要登录窗口管理器才能启动 Firefox。因此,您的任务是学习如何在登录窗口管理器后自动启动程序。

找到您的窗口管理器的名称。然后搜索有关自动启动程序的帮助。

答案2

我也不指望这会起作用。尽管您已将 Firefox 的启动封装在脚本中,但从它可以在系统启动期间运行的意义上来说,它并不是真正的脚本。例如,为了启动 Firefox,它需要运行 X 并访问在 X 的特定会话上打开 GUI。

我将使用下面讨论的方法之一以稍微不同的方式解决这个问题。特别是我通常使用另一种方法

通常,您将想要在用户(您)的上下文中运行的 X 相关项目放入以下两个文件之一:

  • $HOME/.xsession
  • $HOME/.xinitrc

  • 对于 GNOME 桌面,您可以将命令放入 $HOME/.gnomerc

  • 对于 KDE,您将命令放入 $HOME/.kde/Autostart

替代方法

某些命令(例如)xset可能无法在这些文件中运行。如果您仍然想自动化类似的操作,您可以将其添加为“启动应用程序”。

步骤1

创建一个 shell 脚本,xset.bash.

#!/bin/bash
xset r rate 120 66
第2步

添加启动任务来运行shell脚本。

打开应用程序启动应用程序, 在下面系统→偏好设置

                    对话 #1 的 ss

然后单击添加按钮

                                添加对话框的 ss

完成后,确定并关闭对话框并进行测试,注销并重新登录。

参考

答案3

这个答案对Firefox 在启动时无法打开提供了更多信息,对我来说非常有用:

如果主目录 ~/.config/lxsession/LXDE-pi/autostart 中有本地自动启动文件,则全局自动启动文件 /etc/xdg/lxsession/LXDE-pi/autostart 将被忽略。如果您有本地自动启动文件,则需要使用该文件而不是全局自动启动文件(或删除本地自动启动文件)。如果本地文件存在,则您放入全局自动启动文件中的任何内容都将被忽略。您可以使用以下命令编辑本地自动启动文件:(nano ~/.config/lxsession/LXDE-pi/autostart或使用您选择的编辑器)。如果该文件尚不存在,您可以排除这种情况。

相关内容