我使用的是 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 系统最近已切换到systemd
init 系统。)
但是,Firefox 是一个图形 Web 浏览器。因此,它需要启动窗口服务器(X-Windows)和窗口管理器;并且,您需要登录窗口管理器才能启动 Firefox。因此,您的任务是学习如何在登录窗口管理器后自动启动程序。
找到您的窗口管理器的名称。然后搜索有关自动启动程序的帮助。
答案2
我也不指望这会起作用。尽管您已将 Firefox 的启动封装在脚本中,但从它可以在系统启动期间运行的意义上来说,它并不是真正的脚本。例如,为了启动 Firefox,它需要运行 X 并访问在 X 的特定会话上打开 GUI。
我将使用下面讨论的方法之一以稍微不同的方式解决这个问题。特别是我通常使用另一种方法。
通常,您将想要在用户(您)的上下文中运行的 X 相关项目放入以下两个文件之一:
- $HOME/.xsession
$HOME/.xinitrc
对于 GNOME 桌面,您可以将命令放入 $HOME/.gnomerc
- 对于 KDE,您将命令放入 $HOME/.kde/Autostart
替代方法
某些命令(例如)xset
可能无法在这些文件中运行。如果您仍然想自动化类似的操作,您可以将其添加为“启动应用程序”。
创建一个 shell 脚本,xset.bash
.
#!/bin/bash
xset r rate 120 66
第2步
添加启动任务来运行shell脚本。
打开应用程序启动应用程序, 在下面系统→偏好设置
然后单击添加按钮
完成后,确定并关闭对话框并进行测试,注销并重新登录。
参考
答案3
这个答案对Firefox 在启动时无法打开提供了更多信息,对我来说非常有用:
如果主目录 ~/.config/lxsession/LXDE-pi/autostart 中有本地自动启动文件,则全局自动启动文件 /etc/xdg/lxsession/LXDE-pi/autostart 将被忽略。如果您有本地自动启动文件,则需要使用该文件而不是全局自动启动文件(或删除本地自动启动文件)。如果本地文件存在,则您放入全局自动启动文件中的任何内容都将被忽略。您可以使用以下命令编辑本地自动启动文件:(
nano ~/.config/lxsession/LXDE-pi/autostart
或使用您选择的编辑器)。如果该文件尚不存在,您可以排除这种情况。