Linux笔记(69)——配置软件服务化并开机启动
Linux系统在启动的时候会先启动一个叫做init
的进程,然后由该进程启动其他的服务和环境,例如网络服务,多用户环境等。
运行级别
什么是操作系统运行级别?Linux操作系统运行级别有以下几个级别:
级别 | 英文描述 | 中文描述 |
---|---|---|
0 | halt(Do Not set initdefault to this) | 表示关机 |
1 | single user mode | 单用户模式 |
2 | multiuser,without NFS | 无网络连接的多用户命令模式 |
3 | full multiuser mode | 有网络连接的多用户命令模式 |
4 | unused | 不用 |
5 | X11 | 带图形界面的多用户模式 |
6 | reboot(Do Not set initdefault to this) | 重启 |
对照上面的表格,如果你的linux系统是图形界面的,比如ubuntu桌面版,那么你当前系统的运行级别就是5.
如果是linux命令行,那么你当前系统的运行级别就是2或3,但2是无网络的,所以大多数情况都是3(可以联网)。
我们可以使用runlevel
命令来查看当前系统的运行级别,例如:
[root@VM_22_157_centos Runtime]# runlevel
N 3
说明当前运行级别是3.
软件服务化
我们一般会在linux上安装各种各样的软件服务,比如mysql服务,nginx服务。
将安装好的软件的启动脚本复制到/etc/init
目录下,我们就可以使用service
命令来管理该服务,例如:
service nginx start
service nginx status
service nginx stop
chkconfig配置服务运行级
将软件配置成service服务之后,我们就可以将服务配置成开机自启。这时候上面讲到的系统运行级别就使用到了。
例如我将nginx的运行级配置成3,那么就只有在系统运行级别为3的时候,nginx服务才会开机自启。
那么具体如何配置呢?我们使用chkconfig
命令:
语法:
chkconfig [--add][--del][--list] [系统服务名称]
参数:
1. --add
:添加系统服务
2. --del
:删除系统服务
3. --list
:显示所有运行级系统服务的运行状态信息
例如:
[root@centos7-190:bin]$ chkconfig --list
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
pureftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off
可以很清晰的看出,mysql在3,4,5这三个运行级别下是启动的。其他的同理。
现在我们尝试将nginx服务设置为开机自启:
在nginx启动脚本复制到/etc/init
的前提下,使用:
chkconfig --add nginx
然后修改nginx运行级别(在3和5运行级别下启动)
chkconfig --level 35 nginx on
chkconfig --level
的具体用法如下:
chkconfig [--level <运行级别代号>] [系统服务] [on/off/reset]
参数:
1. --level
:服务的级别
2. --on
:开启系统服务
3. --off
:关闭系统服务
总结
将nginx配置开机自启命令如下:
#复制nginx启动脚本到/etc/init/下,具体路径为/etc/init/nginx
chkconfig --add nginx
chkconfig --level 35 nginx on
上一篇: chkconfig基本语法