linux service
一 服务启动顺序
讲开机启动脚本前,先要了解init这个由内核启动的用户级的进程,他的pid始终为1.这些开机启动脚本全部是通过它来启动的
第一步:
/etc/rc.d/rc.sysinit init执行的第一个脚本 这个脚本主要是初始化工作,如设置系统字体,启动swapping,设置主机名,装载声卡模块等等
第二步:
/etc/rc.d/rcx.d #启动各个运行级别脚本
(这里就是存放在/etc/目录下那7个目录rc0.d,rc1.d,rc2.d…rc6.d,这7个目录对于7个级别,rc0.d表示关机级别,因为他前面数字是0)
这个就是你通过chkconfig这个命令来控制开机启动各个级别要执行的程序。其实他就是在这一步的动作
第三步:
/etc/rc.d/rc.local #相应级别服务启动之后、这是最后一个执行的脚本(这里就可以放入你想启动的任何程序)
第四步:
/sbin/mingetty # 等待用户登录
二 在 rc3.d/中K开头的代表不启动,S开头的服务器代表启动。如下
[root@sccdatanluat03 ccdep]# chkconfig --level 3 crond on
[root@sccdatanluat03 ccdep]# chkconfig --list crond
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@sccdatanluat03 ccdep]# cd /etc/rc3.d/
[root@sccdatanluat03 rc3.d]# ll|grep K60
[root@sccdatanluat03 rc3.d]# ll|grep S90 ##这时候crond是在这个level下是自动启动的所以有个S90crond的软链接
lrwxrwxrwx 1 root root 15 Sep 7 13:36 S90crond -> ../init.d/crond
[root@sccdatanluat03 rc3.d]# chkconfig --level 3 crond off
[root@sccdatanluat03 rc3.d]# ll|grep K60 ##这时候crond是在这个level下是不启动的所以有个K60crond的软链接
lrwxrwxrwx 1 root root 15 Sep 7 13:36 K60crond -> ../init.d/crond
[root@sccdatanluat03 rc3.d]# ll|grep S90
[root@sccdatanluat03 rc3.d]# chkconfig --list crond
crond 0:off 1:off 2:on 3:off 4:on 5:on 6:off
三 linux添加服务
1.按一定的规则编写服务脚本,比如:myserviced
#!/bin/sh
#chkconfig: 2345 80 05
#description: myservice
case $1 in
start)
echo "myservice startup" #将该行替换成你自己的服务启动命令
;;
stop)
echo "myservice stop" #将该行替换成你自己服务的启动命令
;;
restart)
echo "myservice stop" #...
echo "myservice startup" #...
;;
*)
;;
esac
命令解析:
# chkconfig: 2345 80 5
2345表示服务的运行级别,80代表Start的顺序,05代表Kill(Stop)的顺序;
# description: service_description
该服务的描述
2.将编写的脚本放到/etc/init.d/,将myserviced的访问权限加上“可执行”
chmod +x myserviced
3.增加服务
chkconfig --add myserviced
4.启停服务 service myserviced start service myserviced stop
服务添加完成
可以用:chkconfig --list查看当前系统的服务
可以用:chkconfig --del myserviced删除服务