本文转载自 http://blog.chinaunix.net/uid-22746363-id-383989.html, 感谢原文作者。
通过阅读如上链接,简单总结下自己对Linux系统运行级别的理解:
a. Linux系统有7个运行级别,其中最常见的是3和5;
b. 级别3是我们所谓的命令行模式,级别5则启动了图形界面。
c. 不同级别的差别就是系统默认启动的服务不同(如3不启动图形界面服务,而级别5却默认启动).
d. 现在的Linux系统安装完成后通常运行在级别5,即系统启动后直接进入图形界面,而不用在字符模式下登录后使用startx或xinit来启动图形界面。
上述链接中的更多细节内容见下文(本文仅对段落和标题做些调整,方便大家选择性阅读):
Linux系统有7个运行级别(runlevel)
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
运行级别的原理
<1> 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
<2> 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
<3> rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
<4> 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件
对于以K开头的文件,系统将终止对应的服务
对于以S开头的文件,系统将启动对应的服务
<5> 查看运行级别用: runlevel
<6> 进入其它运行级别用:init N
<7> 另外init0为关机,init 6为重启系统
不同运行级别之间的差别的在于系统默认起动的服务的不同,如运行级别3默认不启动X图形界面服务,而运行级别5 却默认起动。本质上是没有区别的,更无所谓不同级别间功能强弱的问题。
用户完全可自给定义不同级别的默认服务。在任何运行级别,用户都可用init 命令来切换到其他运行级别。
由于现在的Linux系统安装完后就运行在第5个级别,即系统启动后直接进入图形界面,而不用在字符模式下登录后用startx或者xinit 来起动图形界面。
建议在系统安装完成后把系统的默认运行等级设置在第3级,在字符终端登录后,再手工输入startx 命令起动图形界面。
如何修改系统默认的启动级别
用文本编辑器修改 /etc/inittab文件,做如下修改:
id:5:initdefault: =========> id:3:initdefault:
保存后就reboot重起,系统就默认起动到字符界面。
Linux程序跟随操作系统自启动方案
1.因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面
2.用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序:
cd /home/test1 --该步不可少,否则会提示没有权限打开test.log文件
su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su