本文解释了这些方法,通过这些方法在系统启动时启动服务器和服务,并且告诉你如何使用Webmin在系统启动时运行你的命令。
在一太PC启动时,第一件发生的事情是从ROM装载BIOS。BIOS(基本输入输出系统)执行内存和其它硬件检查,接着从其中一个系统硬盘最前部分装载一小段代码,称为主引导记录或者MBR。此段代码被称为一个boot loader,并且负责向用户显示一个操作系统菜单并且装载它们中的一个。有若干可用于Linux的引导装载器,诸如LILO和GRUB,但它们基本上做相同事情。
一旦内核被装载了,它装载根文件系统并且运行init程序,它负责管理剩下的引导过程。它读取/etc/inittab文件并且执行它指定的命令,其中最重要的开始bootup脚本的执行。这些脚本中每一个脚本负责单个任务,诸如初始化网络接口,启动一个web服务器或者挂载其它文件系统。这些脚本有一个它们必须按照执行的顺序,由于某些后面的脚本依赖更早的脚本,例如,网络文件系统不能在网卡已经被启用前被挂载。
关机时,也运行一系列脚本去关闭服务器和卸载文件系统。这些脚本也有固定的顺序,因而网络的关闭和其它基本服务最后发生。如果由硬件请求和支持,在关闭过程中最后的步骤是由内核关闭系统电源。
当一个Linux系统启动时,取决于系统启动在哪个runlevel,执行不同的脚本。runlevel可以由引导装载器或者由/etc/inittab设置。常用运行级别是:
1) 5 - 图形模式:将启动所有服务器和服务,并且在console口启动一个X来显示一个图形登录提示。
2) 3 - 多用户模式:所有服务器和服务被启动,但在console口上仅正常的文本登录可用。
3) 2 - 不带NFS的多用户模式:几乎所有服务器和服务被启动,但不挂载NFS文件系统
4) 1 - 但用户模式:只进行最基本的系统初始化,并且在console口上打开一个root shell。如果某个bootup脚本失败并且使得你的系统不能引导,这个运行级别有用。
有关如何更改bootup运行级别的信息,见以下有关SysV Init Configuration module的部分。
目录/etc/rc.d/init.d通常用于存储实际的bootup shell脚本。在每个运行级别中被启动或停止的脚本是由来自/etc/rc.d/rc_X_.d目录的符号链接确定的,此处X是运行级别编号。每个符号链接有一个像S_YY_scriptname的名称,在其中YY是在引导过程中启动这个脚本的顺序--数值越小,这个脚本启动越早。因此/etc/rc.d/rc5.d/S10network将在运行级别5中在/etc/rc.d/S80sendmail前被运行。
不是所有Linux发现版使用这些目录用于它们的bootup脚本。一些使用/etc/init.d用于实际脚本文件,而另外的把所有东西放在/sbin目录。/etc/rc.d看起来在更新发行版中成为了标准的基本目录。如果你使用Webmin,你不必担心任何这些目录的位置,因为它总是知道它们在哪里。
这个模块允许你创建和编辑在bootup和关闭时被运行的脚本,被这个模块称为动作。在Webmin中System类别下找到它,并且当你输入它时,主页将显示所有可用动作、在引导时是否启动它们以及每一个动作简单描述的列表。
每种Linux发行版有它自己的标准动作脚本集合,因而在一种系统上,脚本httpd可能启动Apache Webserver,但在另一种系统上可能被称为apache。但你应该能够从其描述清楚每个脚本做什么。
如果在你系统上诸如Apache Webserver或Squid Proxy Server的某个服务器当前未在启动时被启动,你可以使用这个模块来更改它。在大部分Linux发行版中,发行版携带的每个服务器将有它自己的bootup动作脚本,但不是默认都被启用。要配置一个在系统启动时启动的动作,要按照以下步骤:
1) 在这个模块主页,点击要更改的项目的标记。
2) 使用合适的按钮来Start/Stop/Restart/Enable/Disable这个动作。
点击这个动作名称,可以编辑一个动作的详情:
即使动作脚本通常在系统启动时启动以及在关闭时停止,但你能够使用Webmin在任何时候启动或停止它们。很多动作脚本也能执行更多功能,诸如显示一个服务器的状态或者重新装载它的配置。要启动或停止一个动作,做以下事情:
1) 在这个模块主页,点击操作名称。这将显示这个操作编辑的表单。
2) 在本页底部,有一行按钮,每个按钮对应运行这个动作脚本来执行某个功能。
取决于这个脚本,可能有可用的不同按钮,但其中一些最常用的是:
3) 在你点击了对应你想要执行的功能的按钮后,将出现一个来自这个动作脚本输出的页面。这应该指明了是否成功地执行了这个动作。
如果你有一个你想要在系统启动时运行的命令,创建一个新操作脚本是设置它的最好方式。像手动被编译和安装的Apache WebServer或QMail Mail Server的服务器没有动作,因而你需要创建创建一个动作脚本,它运行启动这个服务器所需的任何命令。
要创建你自己的动作,按照以下步骤:
1) 在这个模块主页上,点击已有动作列表上或下的*Create a new systemd service*链接。这将显示如下一个表单用于为你新的动作脚本输入代码。
2) 在Service Name字段中,输入一个对应这个动作的简单名称,如qmail。每个动作必须有一个唯一名称。
3) 在*Service Description*字段,输入一些描述你动作的文本行--可能像Start the Qmail mail server的东西。这将显示在这个模块上Service Description列下。
4) 在*Commands to run on startup*字段中必须填入在系统启动时启动你动作时你想要运行的shell命令。例如,如果你想要启动Qmail,你会输入/var/qmail/rc。
5) 在*Command to run on shutdown*字段应该填入在停止你动作时你想要运行的命令。例如,要停止Qmail,你会输入killall -9 qmail-send。
6) 假如你想要在系统启动时运行你的动作,设置*Start at boot time?*选项为Yes。
7) 最后,点击Create命令保存新的动作。Webmin将在/etc/rc.d/init.d目录创建一个脚本,它把你输入的命令和一个标准包装器组合来生成一个有效的动作脚本。你的动作将被设置成在当前运行级别中运行,带有顺序编号99,因而最后运行它。如果你想要能够完全控制运行你动作什么运行级别以及按什么顺序,见Moudle configuration部分的*Allow selection of individual runlevels*选项。
可以使用Webmin编辑任何已有的动作脚本,不仅你自己的创建。小心编辑它们,由于它们可能有完全不同于Webmin创建的脚本。
应该总是使用合适命令重启或关闭Linux体统,而不是关闭电源或者按重置按钮。如果不是,如果使用一个无日志文件系统,你可能丢失在你本地硬盘上的数据并且将在系统启动时必须等待一个用fsck的长时间文件系统检查。
要重启,只要做以下事情:
1) 在Bootup and Shutdown模块主页的底部,点击*Reboot System*按钮。如果你真的想要重启,这将显示一个进行确认的页面。
2) 点击确认页面上*Reboot System*按钮。关闭过程将立即开始,并且如果在一个console登录,你的会话将被退出。在运行了所有关闭脚本后,系统将如在介绍中解释地再次启动。
关闭地过程几乎相同,只是使用本页底部地*Shutdown System*按钮。
像大部分模块,通过点击主页上Moudle Config链接,可以配置Bootup and Shutdown。这将显示一个标准地配置编辑页面,在此页面上,以下设置在Configuration options头先可用:
不应该更改这个配置页面上其它选项,由于它们是由Webmin根据你操作系统类型自动设置的。