chkconfig&service

chkconfig简介

chkconfig命令主要用来更新(启动或停止或修改)和查询系统服务的运行级信息。 chkconfig不是立即自动禁用或激活一个服务,而是改变符号链接,从而影响开机自启动运行。

chkconfig 依赖/etc/init.d目录中的进程管理脚本。

1
2
3
4
5
6
7
8
9
[root@gitserver ~]# chkconfig --help
chkconfig 版本 1.7.4 - 版权 (C) 1997-2000 Red Hat, Inc.
在 GNU 公共许可条款下,本软件可以免费重新发布。

用法:chkconfig [--list] [--type <type>] [name]
chkconfig --add <name>
chkconfig --del <name>
chkconfig --override <name>
chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities>


chkconfig原理

/etc/rcX.d 目录存放各个运行级别下Linux自启动服务。 X指运行级别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@gitserver ~]# ls -ls /etc/rc* 
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc0.d -> rc.d/rc0.d #运行模式0下需要启动的服务
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc1.d -> rc.d/rc1.d #运行模式1下需要启动的服务
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc2.d -> rc.d/rc2.d #运行模式2下需要启动的服务
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc3.d -> rc.d/rc3.d #运行模式3下需要启动的服务
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc4.d -> rc.d/rc4.d #运行模式4下需要启动的服务
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc5.d -> rc.d/rc5.d #运行模式5下需要启动的服务
0 lrwxrwxrwx 1 root root 10 9月 15 2017 /etc/rc6.d -> rc.d/rc6.d #运行模式6下需要启动的服务
0 lrwxrwxrwx 1 root root 13 10月 25 09:02 /etc/rc.local -> rc.d/rc.local

/etc/rc.d:
总用量 4
0 drwxr-xr-x. 2 root root 97 1月 9 14:22 init.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc0.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc1.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc2.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc3.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc4.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc5.d
0 drwxr-xr-x. 2 root root 45 8月 4 2017 rc6.d
4 -rw-r--r--. 1 root root 596 3月 8 14:47 rc.local

[root@gitserver rc3.d]# runlevel ## 查看运行级别
N 3
[root@gitserver rc3.d]#
[root@gitserver rc3.d]# ls -ls
总用量 0
0 lrwxrwxrwx. 1 root root 20 6月 21 2017 K50netconsole -> ../init.d/netconsole
0 lrwxrwxrwx. 1 root root 17 6月 21 2017 S10network -> ../init.d/network

进程管理脚本放置于/etc/init.d目录下, rcX.d自启动脚本链接到/etc/init.d

添加删除服务

chkconfig命令添加或删除操作其实就是创建或删除这个目录的软连接。

chkcofnig -add添加服务时,服务脚本必须存放在/etc/ini.d/目录下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@pgunimation rc3.d]# ls -ls
total 0
0 lrwxrwxrwx 1 root root 20 Apr 22 21:23 K50netconsole -> ../init.d/netconsole
0 lrwxrwxrwx. 1 root root 21 Jun 25 2017 S05qemukvmga -> /etc/init.d/qemukvmga
0 lrwxrwxrwx. 1 root root 17 Mar 13 2017 S10network -> ../init.d/network
0 lrwxrwxrwx. 1 root root 17 Jan 4 23:29 S11gwarp -> /etc/init.d/gwarp
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# chkconfig --del netconsole
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# ls -ls
total 0
0 lrwxrwxrwx. 1 root root 21 Jun 25 2017 S05qemukvmga -> /etc/init.d/qemukvmga
0 lrwxrwxrwx. 1 root root 17 Mar 13 2017 S10network -> ../init.d/network
0 lrwxrwxrwx. 1 root root 17 Jan 4 23:29 S11gwarp -> /etc/init.d/gwarp
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# chkconfig --add netconsole
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# ls -ls
total 0
0 lrwxrwxrwx 1 root root 20 Apr 22 21:23 K50netconsole -> ../init.d/netconsole
0 lrwxrwxrwx. 1 root root 21 Jun 25 2017 S05qemukvmga -> /etc/init.d/qemukvmga
0 lrwxrwxrwx. 1 root root 17 Mar 13 2017 S10network -> ../init.d/network
0 lrwxrwxrwx. 1 root root 17 Jan 4 23:29 S11gwarp -> /etc/init.d/gwarp
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# chkconfig --list
gwarp 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
qemukvmga 0:off 1:off 2:on 3:on 4:on 5:on 6:off

每个软链接的命名都是”大写S/K+运行顺序+脚本名称”, 其中开机自启动为S, 不随机自启动为K

管理脚本写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[root@pgunimation init.d]# cat gwarp 
#!/bin/sh -e
PATH=/bin

#*
以下几行并不会被chkconfig作为注释,会被完整解析
*#

# chkconfig: 2345 05 96 ### 缺省运行级别 05/96 意思启动顺序S05 /停止顺序K96
# description: Static ARP entry for Gateway ### 服务描述
### BEGIN INIT INFO
# Provides: gwarp
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: STATIC ARP GW
# Description: STATIC ARP GW
### END INIT INFO


case "$1" in
start)
echo "starting"
cd /usr/bin
ls
;;
stop)
echo "Stopping"
kill -9
;;
restart)
$0 stop || true
$0 start
;;
*)
echo "Usage: ls {start|stop|restart}"
exit 1
;;
esac

将脚本放置于/etc/init.d 目录下, 即可使用chkconfig --add 添加服务,进行缺省启动配置。

httpd完整服务脚本

修改服务自启动级别

chkcofig --level 修改链接文件名规则,S/K

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@pgunimation rc3.d]# chkconfig --level 3 netconsole on 
[root@pgunimation rc3.d]# chkconfig --list
gwarp 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:on 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
qemukvmga 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# ls -ls
total 0
0 lrwxrwxrwx. 1 root root 21 Jun 25 2017 S05qemukvmga -> /etc/init.d/qemukvmga
0 lrwxrwxrwx. 1 root root 17 Mar 13 2017 S10network -> ../init.d/network
0 lrwxrwxrwx. 1 root root 17 Jan 4 23:29 S11gwarp -> /etc/init.d/gwarp
0 lrwxrwxrwx 1 root root 20 Apr 22 21:19 S50netconsole -> ../init.d/netconsole
[root@pgunimation rc3.d]# chkconfig --level 3 netconsole off
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]#
[root@pgunimation rc3.d]# ls -ls
total 0
0 lrwxrwxrwx 1 root root 20 Apr 22 21:19 K50netconsole -> ../init.d/netconsole
0 lrwxrwxrwx. 1 root root 21 Jun 25 2017 S05qemukvmga -> /etc/init.d/qemukvmga
0 lrwxrwxrwx. 1 root root 17 Mar 13 2017 S10network -> ../init.d/network
0 lrwxrwxrwx. 1 root root 17 Jan 4 23:29 S11gwarp -> /etc/init.d/gwarp

service

service命令用来快速开启或者停止Linux服务程序。 yum/apt-get 安装新的服务程序后,都会自动在/etc/init.d 中添加一个管理本服务进程的shell脚本。 例如:

1
2
/etc/init.d/mysql
/etc/init.d/nginx

此时,我们想要启动服务即可使用 /etc/init.d/xxx start 或者 service xxx start 启动

1
2
/etc/init.d/mysql start
servicr mysql start

service 其实本质即加载/etc/init.d/xxx start 服务启动 。

1
2
[root@pgunimation init.d]# service --help
Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
欣赏此文? 求鼓励,求支持!