ubuntu开启启动过程&&开启自动启动 &&chkconfig
摘要:很多情况下,我们需要让某些服务开机自动运行:apache、mysql等。或者,在其他时候,我们需要开机即设置某些环境变量的值,修改runlevel等;这个时候,我们需要弄明白系统的开机启动过程。
一般的linux系统,开机启动过程如下:
boot>> loader >>kernel >>init >> inittab >>rcS.conf >> rc.conf >> rc2.d >> rc.local
对于centos系列的系统,init进程会读取/etc/inittab(文件内容如下id:5:initdefault:),决定启动的runlevel,系统初始化由/etc/init/rcS.conf完成,不runlevel的初始化由/etc/init/rc.conf进行选择,然后由特定的脚本文件/etc/rc.d/rc2来执行,注意rc2是一个目录,下面的文件实际上是指向/etc/init.d/中的文件链接。rc.local会在所以初始化工作的随后来执行。所以,对于用户而言,如果我们想要我们的修改对于所有的启动级别都生效,那么需要改动rc.local;如果需要改动默认的runlvel,需要改动inittab。
ubuntu的启动过程与centos系列系统类似,但是在runlevel的处理上有所不同。centos是由文本配置文件来决定runlevel,ubuntu系统是由由/var/run/utmp来决定了,这个文件会被reboot等程序不断改写,里面保存的是上一次的runlevel.使用runlevel命令,可以查看当前runlevel.
初始化完成后,就是登录,执行特定的脚本文件,完成环境变量的初始化。
如同windows下的开机自动启动一样,某些时候我们需要设置一些服务的开机自动启动选项。常用的linux系统服务如下(部分):
NetworkManager |
为了自动连接网络的服务 |
x |
可以不用 |
|
acpid |
高级配置和电源管理接口 |
■ |
○ |
开启,高级电源管理 |
anacron |
一个自动化运行任务的服务 |
■ |
x |
比crond高级的玩意,可以不用 |
apmd |
高级电源管理(支持旧硬件) |
■ |
x |
可以不用,apmdacpid二选一 |
atd |
类似于cron的任务调度系统 |
■ |
x |
按需启用,一般用cron |
auditd |
内核审计守护程序 |
■ |
x |
可以不用,Seliux相关 |
autofs |
光驱NFSSMB自动加载卸载功能 |
■ |
△ |
按需启用 |
2.1开机自动启动:
传统做法,可以在rc.local使用shell命令来打开或者关闭某些服务;这种做法对所有的rulevel有效。
2.2设置环境变量:
理论上说,我们可以在rc.local中处理;更传统的做法,我们一般在/etc/profile等文件中进行设置;或者在nologinfile中进行设置。
在比较新的ubuntu系统中,chkconfig已经不再使用。