运行级别
Ubuntu运行级别
Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。 也可以查看/etc/init/rc-sysinit.conf中env DEFAULT_RUNLEVEL=2
debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。
debian的runlevel级别定义如下:
0 - Halt
1 - Single
2 - Full multi-user with display manager (GUI)
3 - Full multi-user with display manager (GUI)
4 - Full multi-user with display manager (GUI)
5 - Full multi-user with display manager (GUI)
6 - Reboot
可以发现2~5级是没有任何区别的。
redhat
而redhat的runlevel级别定义如下:
0 - Halt
1 - Single
2 - Not used/User definable
3 - Full multi-user NO display manager
4 - Not used/User definable
5 - Full multi-user with display manager (GUI)
runlevel级别定义
0:关机。不能将系统缺省运行级别设置为0,否则无法启动。
1:单用户模式,只允许root用户对系统进行维护。
2:多用户模式,但不能使用NFS(相当于Windows下的网上邻居)
3:字符界面的多用户模式。
4:未定义。
5:图形界面的多用户模式。
6:重启。不能将系统缺省运行级别设置为0,否则会一直重启。
这里补充一下,多数的linux都是用一种叫System V的机制来启动运行级别,而ubuntu使用upstart代替init启动系统进程。所以没有那个inittab文件来改默认运行级别。ubuntu 的默认运行级别文件是/etc/init/rc-sysinit.conf。
开机启动脚本
/etc/init.d/*保存的是开机启动的脚本
开机启动程序的配置
/etc/mysql/*.conf
运行级别脚本
格式:
/etc/rcRunlevel.d/[SK]NNname
其中Runlevel表示运行级别;S表示启动;K表示停止;NN时个2位数字,表示启动次序,数字越小,它将被越早执行;name表示在/etc/init.d目录下的名字。
例如MySQL在运行级别为2的启动脚本:S02mysql。rcS.d下的系统级别的执行脚本。
在/etc/rcRunlevel.d所有脚本都是一个软连接,指向/etc/init.d。如S02mysql:
lrwxrwxrwx 1 root root 15 Dec 16 17:49 S02mysql -> ../init.d/mysql
修改运行
可用Ubuntu自带的update-rc.d修改
update-rc.d foo defaults
update-rc.d foo remove
实例
将tomcat设置开机启动
1.拷贝启动脚本到/etc/init.d
重命名为tomcat
cp catalina.sh /etc/init.d/tomcat
2.修改catalina.sh
增加如下内容,为了解决service启动找不到环境变量的问题。
#fix service boot issue;because service remove most environment variables and with the current working directory set to
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.0.30
创建启动链接
使用update-rc.d创建启动链接
update-rc.d -f tomcat defaults
启动
service tomcat start