我怎样才能使一个启动脚本(Linux)在启动时加载我所有的程序(dameons)?

例如,我需要在启动时执行以下脚本

service httpd start service mysqld start service sshd start service pure-ftpd start /usr/local/bin/noip2 start 

我不想在每个程序的init.d文件夹中创build一个别名。 相反,我可以让一个文本文件,所有这些被称为。 那会容易得多。 谢谢!

您不需要脚本来启动te服务。 在基于RedHat的发行版(这是它看起来你正在使用),运行这个:

 chkconfig servicename on 

会自动创build适合启动的符号链接(在这种情况下(3到5))。在基于debian的发行版中,您可以执行

 update-rc.d servicename defaults 

做同样的事情。 实际上,您也可以使用此工具重新排列优先顺序:

 update-rc.d servicename defaults 91 

随着暴发户(这是当前版本的Ubuntu使用什么和红帽是什么),你甚至可以添加依赖,以便一个进程将启动后,只有特定的服务了。 更多信息:

 http://upstart.ubuntu.com/ 

无论如何,如果你不想使用这两种机制,你总是可以使用/etc/rc.local来启动你的脚本。 除非有非常好的理由,否则只要使用发行版已经提供的工具就可以了 – 它可能比您能提供的更好。

用你的命令创build一个脚本,然后像下面这样用@reboot添加一个cron作业:

crontab -e

@reboot / path / to / script

您可以将这些行添加到/etc/rc.local 。 请注意,它以“root”身份运行。

你可以把一个单独的脚本放在init.d文件夹中。 我做了类似的工作,它非常有效。

标记为移到服务器错误。

创build一个包含这些命令的bash脚本,并将其放在/etc/init.d/目录中。

可以说你把它叫做FOO。 你然后运行

 % update-rc.d FOO defaults 

你也必须使你创build的文件,FOO,可执行,使用

 $chmod +x FOO 

http://embraceubuntu.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/

http://floppix.ccai.com/scripts1.html