Ubuntu启动脚本

尝试在Ubuntu 9.04中创build启动脚本时,我遇到了问题。 我遵循这个指南,但它没有工作: http : //embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/

我遵循指南,并创build一个脚本,看看它是否工作:

#This script is called test #!/bin/bash #Startup Firefox firefox& 

我也试过用#!/ bin / sh,但似乎有同样的问题。

在/etc/init.d中创build文件“test”之后,我在terminal中input了这个文件:

 ubuntuUser@ubuntu:~$ sudo update-rc.d test defaults 

但我得到这个错误:

 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. 

我不知道什么是LSB,并忽略它,并input此行:

 ubuntuUser@ubuntu:~$ sudo chmod +x /etc/init.d/test 

之后,我重新启动了电脑,但没有奏效。

问题是,我不知道是否是“缺lessLSB信息”,阻止我的脚本在启动时启动,如果这是我写我的启动脚本的方式,或者如果我完全是这样做的错误。

我想主要的问题是如果我使用错误的指南,我该如何使启动脚本?

首先,脚本应该从hashbang行开始:

 #!/bin/bash # All other lines should follow this one. 

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 

我之前没有使用update-rc.d,但是快速查看手册页,指出缺省值是S20 – 这是脚本将运行的启动顺序(其中1最早,99最高)。 作为一般的经验法则,除非你知道,否则这应该是99,因为你开始的可能取决于其他服务 – 邮件,networking,系统日志等。

当你说脚本不起作用时,你期望什么行为? 这个脚本试图在机器启动时启动firefox,当用户login时不会启动它。

您可以设置像firefox这样的应用程序 ,从菜单中的启动应用程序login运行。

我遵循指南,并创build了一个脚本,看看它是否工作:

#这个脚本叫做testing
#!/斌/庆典

“hashbang”行必须是任何脚本的第一行。 如果指南另有build议,请select不同的指南。

我不知道什么是LSB,而忽略了它

那么,当你阅读和理解文档update-rc.d指出的时候发生了什么呢?

这听起来像你想在你login后启动程序。你应该使用这个:

http://www.linuxscrew.com/2007/08/09/autostart-programs-in-ubuntu/

否则,脚本会尝试在X启动之前运行,并且不会工作。

有关如何启动Linux的更多信息: http : //www.losurs.org/docs/linuxinit

LSB是Linux标准基础 。 看看这个警告build议的Debian wiki页面 。 有很多很好的信息。