服务与初始化
Linux 系统中的服务与初始化
自启动服务非常重要,例如
(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 脚本文件,例如
命名规则为: K+nn+服务名,或 S+nn+服务名
K – 系统将终止对应的服务
S – 系统将启动对应的服务
nn – 两位数字,执行顺序
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 服务名