服务与进程
执行一个应用程序(二进制程序),会开启一个或多个进程。有的应用程序对外提供端口号,可以监听端口,等待客户端请求,然后处理用户请求,最后将响应的内容返回给客户端,这样的应用程序称之为服务。
每个服务包含三个部分:
- 二进制程序:经过编译之后生成的二进制可执行文件。
- 启动脚本:人工编写的 shell 脚本文件,通过传递简单的参数,管理应用/服务的开启与关闭。
- 配置文件:启动服务的时候,会读取服务的配置文件,来配置需要的参数。
以 httpd 服务为例:
- 二进制程序:
/usr/sbin/httpd
二进制文件 - 启动脚本:
/etc/rc.d/init.d/httpd
shell 脚本文件,可以读写 - 配置文件:
/etc/httpd/conf/httpd.conf
apache 配置文件,启动 apache 服务器需要的一些配置项
RunLevel
- 0 关机
- 1 单用户模式,比如:破解密码
- 2 字符界面,但是没有 nfs 这些网络设置
- 3 字符界面
- 4 未被使用
- 5 图形界面
- 6 重启
常用的级别是 3 和 5。
系统启动流程
- 启动 init 进程,PID=1
- 查看
/etc/inittab
文件,确定 RunLevel,默认为 3 - 查看
/etc/rc.d/rcX.d/
目录(X 为 RunLevel,比如 rc3.d),找到以 S 开头的启动脚本的软连接 - 找到这些软连接对应的
/etc/rc.d/init.d/
目录中的真实的启动脚本,按顺序执行这些 shell 脚本 - 每个启动脚本会调用相应的二进制程序,开启一个或多个进程
相关目录和文件
/etc/rc.d/
目录:
- init.d 目录:存放着所有启动脚本
- rc0.d - rc6.d 目录:存放着对应 RunLevel 启动脚本的软连接,S 开头代表开机启动,K 开头代表开机不启动
- rc 文件
- rc.sysinit 文件:时间、网卡、主机名、分区挂载
- rc.local 文件:系统启动之后,需要额外执行的命令
常用命令
# 查看 httpd 服务在不同 RunLevel 下的开机启动情况
chkconfig --list httpd
# 在所有级别下都设置开机启动 httpd 服务
chkconfig httpd on
# 在 RunLevel 3 级别下设置开机启动 httpd 服务
chkconfig --level 3 httpd on
service httpd start
service httpd stop
service httpd restart
# reload 只重新加载 httpd 服务的配置文件,不关闭 httpd 服务相关的进程
service httpd reload
网友评论