操作系统:Debian GNU/Linux 7.0 (wheezy)
安装chkconfig
chkconfig是可以查询和设置系统服务的工具,通俗的说,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。
在/etc/init.d/目录下,编写自定义服务脚本myservice.sh,myservice.sh能够接受start、stop参数,并且在启动和结束后能够打印相关信息,并保存日志到log.txt中
#!/bin/sh
#chkconfig: 2345 90 15
#description: this is a test service
case "$1" in
start)
echo [$(date "+%Y-%m-%d %H:%M:%S")] myservice started >> /home/a/log.txt
echo "\033[40;32mmyservice.sh started!\033[0m"
;;
stop)
echo [$(date "+%Y-%m-%d %H:%M:%S")] myservice stopped >> /home/a/log.txt
echo "\033[40;32mmyservice.sh stopped!\033[0m"
;;
*)
;;
esac
其中#chkconfig: 2345 90 15表示此服务在系统运行级别2-5下进行开机自启,启动优先级是90,停止优先级是15。优先级数字越大,优先级越低。
对于系统运行级别,linux共有0-6共7个运行级别。在系统启动时会对应执行/etc/rc[0-6].d目录下的脚本。
增加服务

之后会发现,在rc[2-5].d目录下,多了名为S17myservice.sh的软连接。说明系统会在运行级别为2-5时,自动启动myservice.sh脚本,并且以start作为参数(S开头的脚本启动时start作为参数(start),K开头的脚本启动时以stop作为参数(kill))

之后重启系统,会发现该服务得到了自动启动,并在log.txt中写入了信息

也可以用service命令对服务进行管理

但是service命令并不会影响服务的开机自启,在服务停止后,仍旧会在2-5系统运行级别启动

如果需要移除服务,使用以下命令
之后发现在rc[2-5].d目录下,已经没有myservice.sh的软连接存在,并且服务状态也变成了off,不会伴随开机启动
