也许你配置过Windows开机启动的服务,其中有些服务在日常的管理工作中用不到,我们就要把它停止,一来可以节省资源,而来可以减少安全隐患。在Linux上同样也有相关的工具来管理系统的服务。

chkconfig服务管理工具

CentOS 6上的服务管理工具为chkconfig,Linux系统所有的预设服务都可以通过查看/etc/init.d/目录得到。但里边只有屈指可数的几个文件,因为CentOS 7已经不再延续CentOS6版本的服务管理方案了。但是我们依然可以继续使用chkconfig这个命令。系统的服务都可以通过这样的命令实现:

service 服务名 start|stop|restart

这里的服务名就是/etc/init.d/目录下的这些文件了。启动network除了可以使用命令service network start外,还可以使用/etc/init.d/network start

我们可以使用命令chkconfig –list列出所有的服务及每个级别的开启状态

chkconfig --list
[root@localhost init.d]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关
network         0:关 1:关 2:开 3:开 4:开 5:开 6:关
nginx           0:关 1:关 2:开 3:开 4:开 5:开 6:关

它提示我们该命令输出的内容并没有包含CentOS 7的原生systemd服务,而这里仅仅列出来SysV服务。早期CentOS(7之前)采用的服务管理都是SysV,而7换成了systemd。

这里的级别(数字0~6)为系统启动级别(CentOS 7之前版本的用法,而CentOS 7已经不再严格区分级别的概念了),运行级别0、1和6被系统保留。其中0作为shutdown动作,1作为重启至单用户模式,6为重启。在一般的Linux系统实现中,都是用了2、3、4、5几个级别。在CentOS系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示图形登录方式。

更改某级别下的开启状态

chkconfig --level 3 network off
chkconfig --list|grep network

这里用–level指定级别,后面是服务名,然后是off或者on。选项–level后面还可以指定多个级别。

chkconfig --level 345 network off

另外还可以省略级别,默认是针对级别2、3、4和5操作的。

chkconfig network on

chkconfig还有一个功能,就是可以把某个服务加入系统服务或者删除。

chkconfig --add network
chkconfig --del network

这个功能常用于把自定义的启动脚本加入到系统服务当中。

systemd服务管理

CentOS 7不使用SysV而改为systemd了,这是因为systemd支持多个服务并发启动,而SysV只能一个一个地启动,这样最终导致的结果是systemd方式启动会快很多。

列出系统所有的服务

systemctl list-units -all --type=service

这些服务对应的启动脚本在/usr/lib/systemd/system/

常用命令

systemctl enable crond.service #让某个服务开机启动(.service可以省略)
systemctl disable crond.service #不让开机启动
systemctl status crond.service #查看服务状态
systemctl start crond.service #启动某个服务
systemctl stop crond.service #停止某个服务
systemctl restart crond.service #重启某个服务
systemctl is-enabled crond #查看某个服务是否开机启动

[开机启动]Linux开机自启和运行级别

Systemd 入门教程:命令篇 - 阮一峰的网络日志
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html