1、使用工具:chkconfig 管理/etc/rc.d/init.d或/etc/init.d/目录下的服务启动脚本。
要在服务启动脚本开头添加两行:
# chkconfig: 2345 88 12
# description: XXXXXXXXX XXXXXX
这样就可以使用工具:chkconfig 来管理服务启动脚本了。
使用工具:chkconfig 工具的好处:
没有使用该工具,我们要让一个服务在2、3、4、5级别上都运行,在其它级别上都不运行。
要手动设置很多符号连接:
在/etc/rc.d/rc1.d 执行:[root@node2 rc1.d]# ln -sv K12nrped ../init.d/nrped
在/etc/rc.d/rc2.d 执行:[root@node2 rc2.d]# ln -sv S88nrped ../init.d/nrped
在/etc/rc.d/rc3.d 执行:[root@node2 rc3.d]# ln -sv S88nrped ../init.d/nrped
在/etc/rc.d/rc4.d 执行:[root@node2 rc4.d]# ln -sv S88nrped ../init.d/nrped
在/etc/rc.d/rc5.d 执行:[root@node2 rc5.d]# ln -sv S88nrped ../init.d/nrped
在/etc/rc.d/rc6.d 执行:[root@node2 rc6.d]# ln -sv K12nrped ../init.d/nrped
添加这些符号链接之后。运行级别改变时,该服务就会授脚本 rc 的控制。------> rc 脚本就会根据对应运行级别目录(/etc/rc.d/rc$runlevel.d)的符号标识:S、K 关闭、启动对应的服务。这样就实现了设置一个服务是否在一个运行级别上运行。
工具:chkconfig 就会根据服务运行脚本的 #chkconfig 行来,自动设置上述的符号链接。
1
|
[root@node2 rc3.d]
# chkconfig on
|
就会根据:# chkconfig: 2345 88 12 创建各运行级别上的符号链接。
2、为了使用工具: service 管理服务 脚本最少需要接收 start 和 stop 选项;
服务启动脚本要根据用户输入的选项:
stop -----> 关闭服务
start -----> 启动服务
reload -----> 告诉程序重读配置文件,改变程序的运行状态
restart ----> 重新启动服务
3、Lock directory for RedHat / SuSE
RedHat 管理服务的一种机制,要在/var/lock/subsys/目录下创建一个锁文件。
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
41
42
43
44
45
46
47
48
49
50
51
52
|
[root@node2 rc.d]
# vim /etc/init.d/nrped
#!/bin/bash
# chkconfig: 2345 89 11
# description: NRPE DAENON
NRPE=
/usr/local/nagios/bin/nrpe
OPTIONS=
"-c /etc/nagios/nrpe.cfg -d"
lockfile=
/var/lock/subsys/nrped
prog=nrped
RETVAL=0
.
/etc/rc
.d
/init
.d
/functions
start() {
echo
-n $
"Starting $prog: "
daemon $NRPE $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] &&
touch
${lockfile}
return
$RETVAL
}
stop() {
echo
-n $
"Stopping $prog: "
killproc -d -10 $NRPE
RETVAL=$?
echo
[ RETVAL = 0 ] &&
rm
-f ${lockfile}
}
reload() {
echo
-n $
"Reloading $prog: "
killproc $NRPE -HUP
echo
}
case
"$1"
in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
reload
;;
status)
status $NRPE
;;
*)
echo
"Usage: $0 start|stop|restart|reload|status"
;;
esac
exit
0
|
本文转自成长的小虫 51CTO博客,原文链接:http://blog.51cto.com/9528du/1421005,如需转载请自行联系原作者