尝试在 Ubuntu 9.04 中创建启动脚本时遇到问题。我遵循了本指南,但没有奏效:http : //embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/
我按照指南创建了一个脚本来查看它是否有效:
#This script is called test
#!/bin/bash
#Startup Firefox
firefox&
Run Code Online (Sandbox Code Playgroud)
我也尝试过 #!/bin/sh,但它似乎有同样的问题。
在 /etc/init.d 中创建文件“test”后,我在终端中输入:
ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults
update-rc.d: warning: /etc/init.d/test missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
System startup links for /etc/init.d/test already exist.
Run Code Online (Sandbox Code Playgroud)
我不知道什么是 LSB 并忽略它并输入以下行:
ubuntuUser@ubuntu:~$ sudo chmod +x /etc/init.d/test
Run Code Online (Sandbox Code Playgroud)
之后,我重新启动了计算机,但它不起作用。
问题是我不知道是否是“缺少 LSB 信息”阻止了我的脚本在启动时启动,是我编写启动脚本的方式,还是我这样做完全错误。
我想主要问题是我是否使用了错误的指南,以及如何制作启动脚本?
the*_*ive 12
首先,脚本应该从 hashbang 行开始:
#!/bin/bash
# All other lines should follow this one.
Run Code Online (Sandbox Code Playgroud)
LSB 错误与所有系统初始化脚本中的这个块有关
### BEGIN INIT INFO
# Provides: defaultdaemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INF
Run Code Online (Sandbox Code Playgroud)
我以前没有使用过 update-rc.d,但快速查看手册页表明默认值为 S20 - 这是脚本将运行的引导序列(其中 1 最早,99 最高)。作为一般经验法则,除非您知道其他情况,否则这应该是 99,因为您开始的内容可能取决于其他服务 - 邮件、网络、系统日志等。
当您说脚本不起作用时,您期望什么行为?这个脚本试图在机器启动时启动 firefox,当用户登录时它不会启动它。
您可以将 Firefox 等应用程序设置为在从菜单中的启动应用程序登录时运行。
归档时间: |
|
查看次数: |
17754 次 |
最近记录: |