本文章主要对Linux的服务管理进行介绍,包括系统的运行级别、服务管理的分类、RPM包管理和源码包服务管理,对于Linux运维人员来说非常重要。
本学习笔记参考网址:www.imooc.com/learn/537
Linux进程管理:http://blog.csdn.net/u012852374/article/details/53908339
Linux工作管理:http://blog.csdn.net/u012852374/article/details/53926383
Linux定时器:http://blog.csdn.net/u012852374/article/details/53892880
Linux系统资源查看:http://blog.csdn.net/u012852374/article/details/53926409
一、简介与分类
1.1系统的运行级别
运行级别
- 0 关机
- 1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
- 2 不完全的命令行模式,不含NFS服务
- 3 完全的命令行模式,就是标准的字符界面
- 4 系统保留
- 5 图形模式
- 6 重启动
查看运行级别命令:
runlevel
- 修改运行级别为5:
init 5
- 设置系统开机后直接进入哪个运行级别:
#编辑配置文件 /etc/inittab
vi /etc/inittab
#编辑 id:3:initdefault: 改为需要的级别;如改为5
id:5:initdefault:
1.2 服务的分类
- RPM包安装的服务
#查看服务自启动状态,可以看到所有RMP包安装的务
chkconfig --list
上图以 network为例, 0,1,6运行级别下该服务默认是关闭的,2,3,4,5运行级别下该服务默认是开启的。
- 源码包安装的服务
查看服务安装位置,一般是/usr/local/下
1.3 服务与端口
- 查看系统正在运行的进程:
ps aux
- 查看系统中开启的服务:
netstat -tlunp
# -t 列出tcp数据
# -u 列出udp数据
# -l 列出正在监听的网络服务(不包含已经连接的网络服务)
# -n 用端口号来显示服务,而不是用服务名
# -p 列出改服务的进程ID(PID)
二、RPM包服务管理
2.1 独立服务的管理
RPM安装服务和源码包安装服务的区别就是安装位置的不同。
- 源码包安装在指定位置,一般是/usr/local/
- RPM包安装在默认位置中
常规RPM包安装的常规路径:
/etc/init.d/ : 启动脚本位置
/etc/sysconfig/: 初始化环境配置文件位置
/etc/ : 配置文件位置
/etc/xinetd.conf : xinetd配置文件
/etc/xinetd.d/ :基于xinetd服务的启动脚本
/var/lib/ : 服务产生的数据放在这里
/var/log/ : 日志
- 独立服务的启动
/etc/init.d/独立服务名 start|stop|status|restart
#或者
service 独立服务名 start|stop|status|restart
#或者
/ect/rc.d/init.d/独立服务名 start|stop|status|restart
#service 独立服务名.. 这个是redhat系列适用
- 独立服务的自启动
以apache服务为例:
查看apache服务自启动状态:chkconfig --list | grep httpd
修改自启动状态(修改后当前状态不确定):chkconfig --level 2345 httpd on
chkconfig [--level 运行级别] [独立服务名] [on|off]
#或者 通过命令 ntsysv 进入图形界面(适用于redhat系列) 加* 就是开启自启动
ntsysv [运行级别]
再查看自启动状态:`chkconfig --list | grep httpd`
如图:
2.2 基于xinetd服务的管理
- 安装xinetd服务:
yum -y install xinetd
- 如开启 rsync 服务:
# 查看 rsync服务的常规端口 为873
grep rsync /etc/services
编辑启动配置文件,设置disable = no,如下:
[root@localhost~]#vi /etc/xinetd.d/rsync
service rsync #服务的名称为telnet
{
flags = REUSE #标志为REUSE,设定TCP/IP socket 可重用
socket_type = stream #使用TCP协议数据包
wait = no #允许多个连接同时连接
user = root #启动服务的用户为root
server = /usr/bin/rsync #服务的启动程序
log_on_failure += USERID #登录失败后,记录用户的ID
disable = no #服务不启动
}
再重启 rsync 服务:
service xinetd restart
查询启动服务:
netstat -tlun
如上图,873端口已经启动
三、源码包服务管理
3.1源码包安装服务的启动
使用绝对路径,调用地区脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法。
如源码包服务apache启动脚本路径
/usr/local/apache2/bin/apachectl start|stop
3.2源码包服务的自启动
vi /etc/rc.d/rc.local
#加入
/usr/local/apache2/bin/apachectl start
3.3 让源码包服务被服务管理命令识别
#将命令做软链接
#因为service命令是搜索的 etc/init.d/
ln -s /usr/local/apache2/bin/apachectl etc/init.d/apachectl
#启动
service apachectl start
3.4 让源码包的服务被chkconfig与ntsysv命令管理自启动
//apache为例
vi /etc/init.d/apachectl
//加入
#chkconfig:35 86 76 //此句并非是注释 #指定httpd脚本可以被chkconfig命令管理。格式是:chkconfig:运行级别 启动顺序 关闭顺序
//说明,内容随意
#descripition:source package apache
如下图:
最后执行 chkconfig --add apachectl
后生效。