例如,我需要在启动时执行以下脚本
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/