linux启动流程和脚本服务
正在运行地程序叫进程
1、bios找到磁盘上地mbr主引导扇区
2、进入grub界面选择相应的启动内核
3、读取kernel内核文件-/boot/vmlinuz-*
4、读取init的镜像文件-/boot/initrd-*
5、init去读取/etc/inittab
linux系统启动流程
一、初始化阶段
1、grub引导界面
2、识别硬件
3、初始化驱动
二、加载/etc/rc.d/rc.sysinit
4、进入欢迎界面
5、设置时钟
6、设置主机名
7、挂载文件系统
8、挂载光驱
9、进入3级别
启动虚拟内存
设置磁盘阵列
三、加载/etc/rc.d/rc进程管理脚本
10、设置防火墙
11、检测硬件变化
12、启动网络服务
13、启动3级别下允许启动的进程(比如sshd)
四、加载/etc/rc.d/rc.local自定义脚本
五、进入登陆界面
linux有七个级别,0是关机,1是单用户,2不用,3是图形界面,4未使用,5是多用户系统多用户界面再加上一些图新界面,6是重启
chkconfig --level 3 sshd off调配sshd在三级别下关闭
chkconfig --list sshd查看sshd在所有级别下的运行状态
服务脚本和运行级别
如何设置服务脚本在都各级别下开启或关闭
1、查看sshd服务在所有级别下的开启关闭状态
chkconfig --list sshd
2、sshd服务在3 5级别下开启
3、sshd服务在3 5级别下关闭
4、快速设置sshd服务在2345下开启的方法
chkconfig sshd on
5、快速设置sshd服务在2345下关闭的方法
chkconfig sshd off
init 0|3|5|6更换运行级别
runlevel查看当前运行级别
1、服务脚本
/etc/rc.d/init.d/httpd
2、开启或关闭
service httpd start|stop
3、开机启动
chkconfig --level 3 httpd on
设置apache开机启动
vi /etc/rc.d/rc.local
/usr/local/apache/bin/apachectl start
因为linux在开机过程中要运行/etc/rc.d/rc.local
自定义服务脚本(简单)
#!/bin/bash
#mytest
case $1 in
start)
echo 'mytest starting!!!'
sleep 1
;;
stop)
echo 'mytest stoping!!!'
sleep 1
;;
restart)
echo 'mytest restarting'
sleep 1
;;
*)
echo 'please input start|stop|restart'
sleep 1
;;
esac
如果想要把自定义服务脚本可以使用chkconfig,必须在脚本中添加两句
# chkconfig: 2345 90 20
# description: Mytest server daemon
然后需要chkconfig mytest on开启一下才可以使用chkconfig
把服务脚本改造成标准rpm脚本:
# chkconfig: 2345 90 20
# description: Mytest server daemon
通过service把自定义脚本进行开启和关闭:
service mytest start|stop|restart
通过chkconfig把自定义脚本设置开机启动
chkconfig mytest on
chkconfig mytest off