脚本名称
dnsnamed
脚本功能:
负责DNS服务器Named进程的启动、停止、状态信息收集等。
参数:开始
执行环境
OS:Linux
壳: bash壳
开发背景
某些以源代码格式安装的程序在编译并安装后,无法加入系统的自动启动列表,因为运行过程不附带启动参数,例如start|stop|status,无法同时进行编辑在这种情况下,必须编写脚本,并使脚本具有诸如开始等参数
启动脚本的内容
#! /kqdsn/bash
# chkconfig: 2345 20 80
#说明: startdnsnamedprocess。
RETVAL=0
prog=named
lockfile='/var/run/named.pid '
msg stoped=' namedprocesshasbeenstopped!'
msg started=' namedhasbeenstarted!'
开始()。
# determineifthenamedprocessisrunning,ifrunningexit.orstartednamedprocess
#检查状态文件是否存在,如果文件存在,则会启动进程,并显示一条消息,指示进程已开始。 如果不存在,则启动进程
[-f ' $ lockfile ' ] echo ' onenamedhasbeenstarted ' exit 0
# startnamedprocessinthebackground
/usr/local/skqdsn/named-G1/var/DNS.log 21
RETVAL=$?
[ ' $ retval '==0] echo ' $ msg started ' touch/var/run/named.PID exit 0
}
stop ()。
#如果状态文件存在,则运行杀死进程的命令。 如果不存在,则表示进程未在运行。
if [ -f '$lockfile' ]
then
{
#系统进程检查指定程序名称的进程ID,并将其放入列表变量PID中。 如果同名的进程有多个PID,则只放入第一行的PID
PID=` PS-ef|grep-v ' grep '|awk ' {打印$2} `
for id in $PID
do
rm -rf /var/run/named.pid
kill -9 $id
echo ' named process $ idhasbeenended!'
exit 0
唐
}
else
echo 'Named Process is not running!'
exit 1
fi
exit 0
}
状态() )。
#查询状态文件named.pid是否存在,如果存在,则进程是否正在运行; 如果文件不存在,则进程不运行
if [ -f '$lockfile' ]
then
echo 'Named process is running!'
else
echo 'Named Process is not running!'
fi
exit 0
}
case '$1' in
start )
开始
;
stop )
停止
;
斯塔茨)
状态
;
* )
echo $ ' usage : $0{开始} '
RETVAL=1
欧洲航空
可以从命令行执行
注意:
dnsNamed stop只能停止一个处于运行状态的Named进程。 不能停止具有相同named进程名称的多个运行状态不同的PID进程。
将名称脚本添加到/etc/init.d目录中
[ root @ Linux a s42 skqdsn ] # cpdnsnamed/etc/init.d /
添加到系统的自启动服务列表
[ root @ Linux a s42 skqdsn ] # chkconfig-- adddnsnamed
[root@linuxas42 skqdsn]#
查看列表[ root @ dnscache1DNS cap ] # chkconfig-- list|grepdnsnamed
DNS named 0: off 1: off 2: on : on 4: on 5: on 6: on : off
[root@linuxas42 skqdsn]#
验证启动目录脚本
#chkconfig: 2345 20 80
245是init等级20,进程启动等级80是进程停止等级
在/etc/rc2.d/、/etc/rc3.d/、/etc/rc4.d/、/etc/rc5.d/四个目录下
S20dnsnamed启动脚本指向./init.d/dnsnamed脚本
/etc/rc0.d目录中有关闭Named脚本
k80DNSnamed--./init.d/DNSnamed脚本