我如何制作一个启动脚本(linux)以在启动时加载我的所有程序(dameons)?

我如何制作一个启动脚本(linux)以在启动时加载我的所有程序(dameons)?

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

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

我不想在 init.d 文件夹中为每个程序创建别名。相反,我可以创建一个文本文件来调用所有这些程序吗?那会容易得多。谢谢!

答案1

您不需要脚本来启动 te 服务。在基于 RedHat 的发行版(您似乎正在使用这个发行版)下,运行以下命令:

chkconfig servicename on

将自动为适当的运行级别创建启动符号链接(在本例中为 3 到 5)。在基于 Debian 的发行版中,你可以这样做

update-rc.d servicename defaults

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

update-rc.d servicename defaults 91

使用 upstart(Ubuntu 当前版本正在使用,Red Hat 正在转向该版本),您甚至可以添加依赖项,以便一个进程仅在特定服务启动后才启动。更多信息请见:

http://upstart.ubuntu.com/

无论如何,如果您不想使用这两种机制,您可以随时使用 /etc/rc.local 来启动您的脚本。除非有非常好的理由,否则只需使用您的发行版已提供的工具即可 - 它很可能比您能想到的更好。

答案2

使用您的命令创建一个脚本,然后使用@reboot 添加一个 cron 作业,如下所示:

crontab -e

@reboot /路径/到/脚本

答案3

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

答案4

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

假设你将其命名为 FOO。然后运行

% update-rc.d FOO defaults

您还必须使用以下命令使创建的文件 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

相关内容