服务与初始化

自启动服务非常重要,例如

(1)需要手动添加希望自启的服务,如安装 svn 后没有自动添加,就需要我们手动加入

(2)安装某些程序后,自动加到自启动了,但我们不需要,需要手动移除

(3)很多恶意程序都会把自己加入自启动,需要我们排查删除

运行级别的原理

涉及到自启动操作时,就会接触到 /etc/rc.d/rc[0-6].d 这 7 个目录

这几个目录代表着 linux 的 7 个运行级别

在 /etc/inittab 文件中指定了系统启动时默认进入哪个级别

Linux 进入运行级别后,就会进入对应的 rcN.d 目录,按照文件名顺序检索目录下的文件

rcN.d 目录下都是一些链接文件,这些链接文件都指向 /etc/init.d 目录下的 service 脚本文件,例如

img

命名规则为: K+nn+服务名,或 S+nn+服务名

K – 系统将终止对应的服务

S – 系统将启动对应的服务

nn – 两位数字,执行顺序

img 7 个运行级别是什么?

0 – 停机

1 – 单用户模式,root 权限,用于系统维护,禁止远程登陆 2 – 多用户状态,没有 NFS

3 – 标准多用户模式,登陆后进入命令行模式

4 – 系统未使用,保留

5 – 多用户图形模式,登陆后进入图形 GUI 模式

6 – 重新启动

服务器一般都是命令行模式,所以默认运行级别为 3

如何添加自启程序?

(1)/etc/init.d 目录中添加

以启动 SVN 为例

1)在 /etc/init.d 目录下创建启动服务的脚本

vim /etc/init.d/svn

内容

#!/bin/bash svnserve -d -r /svn 仓库路径

设置执行权限

chmod 755 /etc/init.d/svn

2)把这个脚本软链接到 /etc/rc.d/rc3.d

ln -s /etc/init.d/svn /etc/rc.d/rc3.d/S101svn

S 代表是要执行这个脚本,101 是执行顺序,通常要大于 60,这样可以保证基础服务都已经启动完成

重启 linux 测试

(2)/etc/rc.local 文件中添加

直接修改 /etc/rc.local

该脚本是在系统初始化级别脚本运行之后再执行的,因此可以在里面添加想在系统启动之后执行的脚本

(3)chkconfig 命令添加

如何禁止自启程序?

(1)直接删除 /etc/rc.d/rcN.d 目录的目标链接文件

(2)删除 /etc/rc.local 文件中定义的启动脚本

(3)查看自启动服务列表,从中选择目标服务执行禁止操作

chkconfig –list

chkconfig –del 服务名