linux的运行级别简介

今天需要在linux下远程安装oracle 11g,不过实施的同事只安装了gnome环境,没有安装kde环境,按理说应该是vnc能连接到gnome的界面的,但是尝试了好久都没有成功,最终只能运行静默安装。自己也重新温习了linux的运行级别,也加深下自己的印象,后面小鱼会专门整理一个oracle 11GR2的静默安装文档。

Linux运行级别有7个,级别分别是从0到6,不同的级别具有不同的功能、各级别的定义都定义到了/etc/inittab文件中,这个文件是init程序寻找的主要文件。
[root@hollycrm oracle]# less /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

小鱼简单解释下/etc/inittab文件中记录的运行级别:
0 表示的是停机状态,请不要将系统默认运行级别设置为0,否则系统重启后又会自动关机,需要修改grup
1 单用户工作环状态,root权限,用于系统维护,禁止远程登录
2 多用户状态,不过不支持nfs
3 多用户模式,支持nfs
4 系统未使用,保留一般不用
5 x界面,登录后进行图形的GUI界面
6 正常关闭并重启系统,同样也不要将系统默认运行级别设置为6,否则系统重启后也会马上关闭

而id:3:initdefault:则是系统启动时默认的运行级别,我们也可以通过init来转换linux的运行级别。

我们再来看一个文件/etc/rc.local
[root@hollycrm db_1]# ls -l /etc/rc.local
lrwxrwxrwx. 1 root root 13 Jan 23 18:52 /etc/rc.local -> rc.d/rc.local

一般如果我们设置一些开机启动的脚本会经常写到/etc/rc.local文件中,其实这个文件只是一个软链接,链接到/etc/rc.d/rc.local文件

[root@hollycrm ~]# ls -l /etc/rc.d
total 60
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 init.d
-rwxr-xr-x. 1 root root  2617 May 23  2012 rc
-rwxr-xr-x. 1 root root   220 May 23  2012 rc.local
-rwxr-xr-x. 1 root root 19114 May 23  2012 rc.sysinit
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc0.d
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc1.d
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc2.d
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc3.d
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc4.d
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc5.d
drwxr-xr-x. 2 root root  4096 Feb 11 17:38 rc6.d

而我们发觉/etc/rc.d目录下不仅有rc.local文件,还有其他几个rc开头的目录,其实这几个目录正是对应于系统的7个不同的级别

随便取一个目录看其下存放的到底是什么文件:
[root@hollycrm ~]# ls -l /etc/rc.d/rc1.d/
total 0
lrwxrwxrwx. 1 root root 20 Jan 23 18:52 K01certmonger -> ../init.d/certmonger
lrwxrwxrwx. 1 root root 15 Jan 23 18:57 K01numad -> ../init.d/numad
lrwxrwxrwx. 1 root root 16 Jan 23 18:57 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 22 Jan 23 18:54 K02avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx. 1 root root 17 Jan 23 18:52 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 19 Jan 23 18:56 K02rhsmcertd -> ../init.d/rhsmcertd
lrwxrwxrwx. 1 root root 15 Jan 23 18:53 K03rhnsd -> ../init.d/rhnsd
。。。
lrwxrwxrwx. 1 root root 17 Jan 23 18:57 S01sysstat -> ../init.d/sysstat
lrwxrwxrwx. 1 root root 22 Jan 23 18:57 S02lvm2-monitor -> ../init.d/lvm2-monitor
lrwxrwxrwx. 1 root root 18 Jan 23 18:57 S13cpuspeed -> ../init.d/cpuspeed
lrwxrwxrwx. 1 root root 19 Jan 23 18:52 S26udev-post -> ../init.d/udev-post
lrwxrwxrwx. 1 root root 16 Jan 23 18:52 S99single -> ../init.d/single

这里看出其目录下也是存储的软链接文件,其指向的是/etc/init.d/下的这类文件,也就是我们常用的一些服务启动文件。

注意:我们常说的系统开机是否启动该服务,是先根据开机启动的默认运行级别进入到指定的rcN.d目录内,然后根据该目录下的文件决定是否启动这些服务,其中K开头的服务不会随着系统系统而启动,S开头的服务会随着系统启动而启动

下面简单来验证下:
[root@hollycrm rc5.d]# chkconfig --list|grep vncserver
vncserver       0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@hollycrm rc5.d]# ls -l |grep vncserver          
lrwxrwxrwx. 1 root root 19 Feb 11 17:38 K35vncserver -> ../init.d/vncserver
看出rc5.d目录下的vncserver服务默认是不启动的。

[root@hollycrm rc5.d]# chkconfig --levels 345 vncserver on
[root@hollycrm rc5.d]# chkconfig --list|grep vncserver
vncserver       0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@hollycrm rc5.d]# ls -l |grep vncserver
lrwxrwxrwx. 1 root root 19 Feb 12 01:17 S91vncserver -> ../init.d/vncserver
这里用chkconfig设置在345级别下开机自启动,果然rc5.d目录下对应的文件开头已经从K变为S了。

runlevel可以用来查看系统的运行级别
[root@hollycrm rc5.d]# runlevel
3 5
上面的3 5表示,最近一次级别转换之前是运行级别是3,而当前的运行级别则是级别5.

About xiaoyu

xiaoyu,享受数据库带给xiaoyu的乐趣! 13439818916@163.com 欢迎邮件联系讨论
This entry was posted in linux、unix、windows. Bookmark the permalink.