chkconfig和systemctl

一、chkconfig

chkconfig可以更新(启动或停止)和查询系统服务(service)运行级信息。更简单一点,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。

chkconfig 提供5个功能:

1. 设置service启动信息

# chkconfig name on/off/reset

 

on、off、reset用于改变service的启动信息。
on表示开启,off表示关闭,reset表示重置。
默认情况下,on和off开关只对运行级2,3,4,5有效,reset可以对所有运行级有效。
例如,

# chkconfig httpd on

 

2. 设置service运行级别

# chkconfig --level levels

 

例如,

# chkconfig --level 2345 httpd on

 

指定运行级为2,3,4,5
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动

3. 添加service

# chkconfig --add name

 

添加一个chkconfig管理的service,并在/etc/rc[0-6].d 目录下添加相应的符号链接(symbolic links)。

4. 移除service

# chkconfig --del name

 

从chkconfig 管理名单中删除该service,并且删除 /etc/rc[0-6].d 目录下所有与之关联的符号链接(symbolic links)。

5. 列出service的启动信息

# chkconfig --list [name]

 

如果不指定name,会列出所有services的信息。

每个service每个运行级别都会有一个启动和停止脚本;当切换运行级别时,init不会重启已经启动的service,也不会重新停止已经停止的service。

下面举例说明

(1).列出所有服务的启动情况

$ chkconfig --list
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
redis           0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcsvcgssd      0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
smb             0:off   1:off   2:off   3:on    4:off   5:on    6:off
。。。
xinetd based services:
    rsync:          off
    swat:           off

 

(2)增加mysqld服务

$ chkconfig --add mysqld

 

(3)删除mysqld服务

$ chkconfig --del mysqld

 

(4)设置mysqld运行级别为2,3,4,5

$ chkconfig --level 2345 httpd on

 

(5)列出mysqld 服务启动信息情况

$ chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

(6)设置启动信息

$ chkconfig mysqld on

默认的运行级别为2,3,4,5
实际上,与4中命令作用是一样的。

二、systemctl(代替chkconfig和service)

在Centos 中 systemctl  是设置系统服务的命令,即 service  ,   它融合之前service和chkconfig的功能于一体。

可以使用它永久性或只在当前会话中启用/禁用服务。

小贴士: 
- 在 systemctl 參数中加入 -H <username>@<主机名> 能够实现对其它机器的远程控制。

chkconfig和systemctl

该过程使用 SSH连接。 
- systemadm 是 systemd 的官方图形前端。官方软件仓库 提供了稳定版本号 systemd-ui。

systemctl常见用法

启动、停止、重启、重载服务
systemctl start name.service
systemctl stop name.service
systemctl restart name.service
systemctl reload name.service
(2)systemctl | grep agent
systemctl | grep server
systemctl | grep proxy

chkconfig和systemctl

 

三、chkconfig和systemctl区别对比

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status

systemctl status httpd.service (服务详细信息)

systemctl is-active httpd.service (仅显示是否 Active)

加入自定义服务 chkconfig --add  test systemctl   load test.service
删除服务 chkconfig --del  xxx 停掉应用,删除相应的配置文件
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service