关于Mysql开机自启动和Runlevel

缘起

之前在配置Sonar时,安装了Mysql servermysql client,每次启动计算机mysqld总是自启动,占用了我宝贵的内存资源和CPU资源,看着就觉得十分的不爽。早就想干掉它了。今天,天朗气清,阳光明媚,这个想法更加强烈。

正文

1. 关闭mysql自启动

Mysql的开机自启动是在/etc/init/mysql.conf中设置的,其中启动设置部分的内容为:

start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

这里涉及一个runlevel的概念,百度了一下。

linux操作系统自从开始启动至启动完毕需要经历几个不同的阶段,这几个阶段就叫做runlevel,同样,当linux操作系统关闭时,也要经历另外几个不同的runlevelRunlevel可以看作是系统的状态,进入每个runlevel都需要启动或关闭相应的一系列服务(services),这些服务(services)以初始化脚本的方式放置于目录/etc/rc.d/rc?.d/或者/etc/rc?.d下面(?代表runlevel的对应序号)

大多数Linux发行版中,通常有8runlevel,表示如下:

停机Halt the system(不可将initdefault设置为0

单用户模式Single user mode

基本多用户模式Basic multi user mode(无Network File System

多用户模式Multi user mode

没使用到该runlevel

GUI的多用户模式Multi user mode with GUI

重新启动Reboot the system 

单用户模式

多数的桌面的linux系统缺省的runlevel5,用户登陆时是图形界面,而多数的服务器版本的linux系统缺省的runlevel3,用户登陆时是字符界面,runlevel 12除了调试之外很少使用,runlevel S并不是直接给用户使用,而是用来为Single user mode作准备。

知道了这些后,很容易作出处理,即将mysql.conf中的start on runlevel注释调:

#start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

然而,开机后,如果需要启动mysql服务,可以通过service命令来启动和停止:

sudo service mysql [stop|start|restart]

2. 关于runlevel的使用

2.1. 显示当前运行模式

runlevel命令可以用来显示先前和目前正在使用中的运行模式:

$runlevel
N 2

输出结果N表示先前没有运行模式,而现在的运行模式是2,及基本多用户模式

2.2. 切换运行模式

telinit命令(root用户)可以切换运行模式(注,没有把握不要运行这个命令):

通常,切换运行模式的目的是重启某些应用进程,比如XFree86(一种X window服务器程序,类似的有X org,将运行模式从5切换到3将终止XFree86以及与之相关的所有进程,然后再把运行模式切换到5XFree86就可以很干净的启动。在做这些工作之前,请确保所有在XFree86下的工作都已经保存,用root用户:

$telinit 3
$telinit 5

在键入命令之后,你的屏幕可能会显示一些服务启动或者停止的信息。

2.3. 在运行模式中加入启动服务

要在某个运行模式中加入一个启动服务,首先要新建该服务启动脚本,然后把它放置于/etc/rc.d/init.d或者/etc/init.d/(根据你的linux版本有所不同),要将该启动脚本与运行模式关联起来,你需要这个运行模式的目录下建立一个与/etc/rc.d/init.d/下启动脚本的 symbolic link,文件名的前缀通常为SXXXX为数字,这个数字是用来控制该运行模式下服务的启动顺序。脚本的执行顺序是按照数字大小升序执行,就是数字越小越先执行,下面就是一个在运行模式中加入启动服务具体的例子:

$ cp myservice /etc/rc.d/init.d/
$ ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice
这样,下次以 runlevel 3 启动时, myservice 就会自动启动。

以某个runlevel启动

你可以自己制定启动时所进入的runlevel,如果你的系统使用的是lilo,在启动命令中将相应的部分为:

LILO: linux 5

如果你使用的是GRUB,在启动时你可以按住e键进入设置模式,相应的位置显示为:

kernel /vmlinuz ro root=/dev/hda1 5

备注:关于runlevel使用的部分,可能是涉及系统管理部分,相关的知识不是很熟,没有实践过。

小结

没什么想说的。

参考文献

[1]ubuntu mysql 取消开机自启动 

[2]linuxRunlevel

[3]runlevel:http://baike.baidu.com/link?url=XcMVONjDyK2NM2vI5E0tNVyFYdzSm040JkMd435ztoMEdlhX3AquzcB6XusM4yicaObtyJtn-VIMN_FkqdtiF_

你可能感兴趣的:(mysql,linux,runlevel,服务自启动)